import datetime from pydantic import BaseModel, Field from dmp.songwhip.dtos import SongwhipCampaignType class SongwhipPresavePage(BaseModel): id: str name: str url: str vendor_id: int = Field(alias="vendorId") subaccount_id: int = Field(alias="subaccountId") global_participant_id: str = Field(alias="globalParticipantId") created_at: datetime.datetime = Field(alias="createdAt") class SongwhipCampaign(BaseModel): id: str type: SongwhipCampaignType name: str url: str vendor_id: int = Field(alias="vendorId") subaccount_id: int = Field(alias="subaccountId") global_participant_id: str = Field(alias="globalParticipantId") created_at: datetime.datetime = Field(alias="createdAt") # Songwhip class GetSongwhipPresavePageInput(BaseModel): vendor_id: int | None = Field( None, alias="vendorId", description="Account vendor id", ) subaccount_id: int | None = Field( None, alias="subaccountId", description="Account subaccount id", ) global_participant_ids: list[str] | None = Field( None, alias="globalParticipantIds", description="Artist ids", ) presave_page_ids: list[str] | None = Field( None, alias="presavePageIds", description="Presave page ids", ) class GetSongwhipCampaignsInput(BaseModel): vendor_id: int | None = Field( None, alias="vendorId", description="Account vendor id", ) subaccount_id: int | None = Field( None, alias="subaccountId", description="Account subaccount id", ) global_participant_ids: list[str] | None = Field( None, alias="globalParticipantIds", description="Artist ids", ) campaign_ids: list[str] | None = Field( None, alias="campaignIds", description="Campaign ids (presave page ids and custom page ids)", ) search: str | None = Field(None) limit: int | None = Field(None, ge=1, le=200)