from datetime import datetime from enum import StrEnum from typing import Annotated from fansifter_common.utils import timezone from pydantic import AfterValidator, AliasChoices, BaseModel, Field class Plarform(StrEnum): TIKTOK = "TIKTOK" META = "META" class Event(BaseModel): platform: Plarform ad_account: str audience_ttl_days: int class CustomAudience(BaseModel): id: str = Field(validation_alias=AliasChoices("id", "audience_id")) time_created: Annotated[ datetime, AfterValidator(timezone.to_aware), ] = Field(validation_alias=AliasChoices("time_created", "create_time"))