"""Recipient Model.""" from datetime import datetime from typing import Optional from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.sql import func from collaborator.connectors import mysql class Recipient(mysql.BaseModel): """Encapsulates Recipient data.""" __tablename__ = "recipient" recipient_id: Mapped[int] = mapped_column("id", primary_key=True) transferwise_id: Mapped[int] name: Mapped[str] currency: Mapped[str] created_by: Mapped[str] created_date: Mapped[datetime] = mapped_column(default=func.now()) deleted_by: Mapped[Optional[str]] deleted_date: Mapped[Optional[datetime]] def to_dict(self) -> dict: """Recipient data dictionary. Returns: dict """ created_date = self.created_date.isoformat() if self.created_date else None deleted_date = self.deleted_date.isoformat() if self.deleted_date else None return { "id": self.recipient_id, "transferwise_id": self.transferwise_id, "name": self.name, "currency": self.currency, "created_by": self.created_by, "created_date": created_date, "deleted_by": self.deleted_by, "deleted_date": deleted_date, }