"""VendorAgreement Model.""" from datetime import date, datetime from typing import Optional from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.sql import func from collaborator.connectors import mysql class VendorAgreement(mysql.BaseModel): """Encapsulates vendor agreement data. Represents vendor_agreement table in the collaborator database. """ __tablename__ = "vendor_agreement" vendor_agreement_id: Mapped[int] = mapped_column("id", primary_key=True) vendor_id: Mapped[int] date_accepted: Mapped[Optional[datetime]] = mapped_column(default=func.now()) user_id: Mapped[str] def to_dict(self) -> dict: """Vendor Agreement data dictionary. Returns: dict """ return { "id": self.vendor_agreement_id, "vendor_id": self.vendor_id, "date_accepted": ( self.date_accepted.isoformat() if isinstance(self.date_accepted, date) else self.date_accepted ), "user_id": self.user_id, }