posthog-js supports person.set_once but our backend doesn't. Make sure we can pass through `$set_once` on an `$identify` call, and only set the properties within if the properties aren't already set on the user.
ee/clickhouse/process_event.py
nth_of_type=el.get("nth_of_type"),
                attributes={key: value for key, value in el.items() if key.startswith("attr__")},
            )
            for index, el in enumerate(elements)
        ]
    team = Team.objects.select_related("organization").get(pk=team_id)
    if not team.anonymize_ips and "$ip" not in properties:
        properties["$ip"] = ip
    event = sanitize_event_name(event)
    _add_missing_feature_flags(properties, team, distinct_id)
    store_names_and_properties(team=team, event=event, properties=properties)
    if not Person.objects.distinct_ids_exist(team_id=team_id, distinct_ids=[str(distinct_id)]):
        
        
        try:
            Person.objects.create(team_id=team_id, distinct_ids=[str(distinct_id)])
        except IntegrityError:
            pass
    
    create_event(
        event_uuid=event_uuid,
        event=event,
        properties=properties,
        timestamp=timestamp,
        team=team,
        distinct_id=distinct_id,
        elements=elements_list,
        site_url=site_url,
    )
def handle_timestamp(data: dict, now: datetime.datetime, sent_at: Optional[datetime.datetime]) -> datetime.datetime: