"""Pydantic Model For Ledger Conctract Advance Applied.""" import datetime from pydantic import BaseModel from pydantic import ConfigDict from pydantic import field_validator from moneyhub.utils.schema import convert_to_date class LedgerContractAdvanceAppliedSchema(BaseModel): """Ledger contract advance applied schema model.""" ledger_contract_advance_applied_id: int advance_id: str abacus_event_id: int account_id: int contract_id: int contract_advance_id: int created_at: datetime.date statement_period_id: int advance_amount: float advance_currency_code: str advance_amount_payee_currency: float advance_payee_currency_code: str advance_description: str model_config = ConfigDict(from_attributes=True) @field_validator('created_at', mode='before') @classmethod def validate_date(cls, value: datetime.datetime | datetime.date | None) -> datetime.date | None: """Ensure that the value is a date, converting if need be. Args: value (datetime | date | None): Value to validate Returns: date | None: Validated date """ return convert_to_date(value)