This commit is contained in:
debu-2 2026-10-14 05:30:45 +05:30
parent 8037489503
commit ad189b8568
15 changed files with 1989 additions and 4 deletions

View file

@ -614,6 +614,36 @@ class WhatsAppPhoneAsset(Base):
account: Mapped[WhatsAppBusinessAccount] = relationship(back_populates="phones")
class WhatsAppMessageTemplate(Base):
"""A WhatsApp message template owned by one WABA. Meta remains the source of approval."""
__tablename__ = "whatsapp_message_templates"
__table_args__ = (UniqueConstraint("waba_id", "name", "language", name="uq_wa_template_name_lang"),)
id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
user_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("user_accounts.id", ondelete="CASCADE"), index=True)
account_id: Mapped[uuid.UUID] = mapped_column(
ForeignKey("whatsapp_business_accounts.id", ondelete="CASCADE"), index=True
)
waba_id: Mapped[str] = mapped_column(String(64), index=True)
phone_number_id: Mapped[str | None] = mapped_column(String(64), nullable=True)
meta_template_id: Mapped[str | None] = mapped_column(String(64), nullable=True, index=True)
name: Mapped[str] = mapped_column(String(512), index=True)
language: Mapped[str] = mapped_column(String(16), default="en_US")
category: Mapped[str] = mapped_column(String(32), default="MARKETING")
subtype: Mapped[str] = mapped_column(String(40), default="default")
status: Mapped[str] = mapped_column(String(32), default="PENDING", index=True)
quality: Mapped[str | None] = mapped_column(String(24), nullable=True)
rejected_reason: Mapped[str | None] = mapped_column(Text, nullable=True)
parameter_format: Mapped[str] = mapped_column(String(16), default="POSITIONAL")
definition: Mapped[dict] = mapped_column(JSON, default=dict)
components: Mapped[list] = mapped_column(JSON, default=list)
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now())
updated_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), server_default=func.now(), onupdate=func.now()
)
class WhatsAppConnectionAudit(Base):
__tablename__ = "whatsapp_connection_audits"