"""TermsAndConditionsAgreement Model.""" from datetime import datetime from sqlalchemy import ForeignKey, Text from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.sql import func from collaborator.connectors import mysql class TermsAndConditionsAgreement(mysql.BaseModel): """Encapsulates terms and conditions data. Represents terms_and_conditions_agreement table in the collaborator database. """ __tablename__ = "dp_terms_and_conditions_agreement" terms_and_conditions_agreement_id: Mapped[int] = mapped_column( "id", primary_key=True ) terms_and_conditions_id: Mapped[int] = mapped_column( "dp_terms_and_conditions_id", ForeignKey("dp_terms_and_conditions.id"), ) vendor_id: Mapped[int] vendor_brand: Mapped[str] = mapped_column(Text) agreed_date: Mapped[datetime] = mapped_column(default=func.now()) user_id: Mapped[str] def to_dict(self) -> dict: """Terms and Conditions Agreement data dictionary. Returns: dict """ return { "id": self.terms_and_conditions_agreement_id, "terms_and_conditions_id": self.terms_and_conditions_id, "vendor_id": self.vendor_id, "vendor_brand": self.vendor_brand, "agreed_date": self.agreed_date.isoformat(), "user_id": self.user_id, }