"""Pydantic Model For Ledger Vat Summary.""" from datetime import datetime from pydantic import BaseModel from pydantic import ConfigDict from moneyhub.constants.constants import VatCategory from moneyhub.schemas.pagination import PaginationSchema class LedgerVatSummaryBackfillSchema(BaseModel): """Ledger VAT summary backfill schema.""" account_id: int contract_id: int vat_category: VatCategory payee_currency_code: str vat_currency_code: str base_amount_payee_currency: float vat_rate: float | None = None vat_amount_payee_currency: float | None = None vat_amount_vat_currency: float | None = None wht_amount_payee_currency: float | None = None wht_amount_vat_currency: float | None = None wht_rate: float | None = None net_amount_payee_currency: float model_config = ConfigDict(from_attributes=True) class LedgerVatSummarySchema(BaseModel): """Ledger vat summary model.""" ledger_vat_summary_id: int statement_period_id: int activity_statement_period_id: int abacus_event_id: int account_id: int contract_id: int description: str | None = None vat_category: VatCategory payee_currency_code: str vat_currency_code: str base_amount_payee_currency: float vat_rate: float | None = None vat_amount_payee_currency: float | None = None vat_amount_vat_currency: float | None = None wht_amount_payee_currency: float | None = None wht_amount_vat_currency: float | None = None wht_rate: float | None = None net_amount_payee_currency: float abacus_exempt_reason: str | None = None is_reporting_only: bool created_by: str created_at: datetime last_modified_by: str last_modified: datetime model_config = ConfigDict(from_attributes=True) class PaginatedLedgerVatSummarySchema(BaseModel): """Ledger VAT summary entries with pagination.""" items: list[LedgerVatSummarySchema] pagination: PaginationSchema