from datetime import datetime from fansifter_common.adapters.db.types import ChoiceType from fansifter_common.utils import timezone from sqlalchemy.orm import Mapped, mapped_column from dmp.ad_accounts.enums import AdAccountPlatform from dmp.adapters.db import ReportingModel class AdAccountDbt(ReportingModel, kw_only=True): __tablename__ = "ad_reporting_account_dbt" id: Mapped[str] = mapped_column(primary_key=True) source_schema: Mapped[str] = mapped_column(primary_key=True) platform: Mapped[AdAccountPlatform] = mapped_column( ChoiceType(AdAccountPlatform), primary_key=True ) name: Mapped[str] business_account_id: Mapped[str | None] business_account_name: Mapped[str | None] campaigns_count: Mapped[int] synced_at: Mapped[datetime] = mapped_column(default_factory=timezone.now)