"""DP Payment schemas.""" from datetime import datetime from enum import Enum from typing import Optional from pydantic import Field from collaborator.models.rds.dp_payment import PayoneerEventType, PayoneerPaymentStatus from collaborator.schemas import BaseSchema, BaseTableSchema class DpPaymentSchema(BaseTableSchema): """DP payment schema.""" id: int = Field(alias="dp_payment_id") abacus_statement_period_id: int abacus_statement_period_name: str collaborator_id: int collaborator_name: str amount: float currency: str payee_id: int payoneer_program_id: int payoneer_program_name: str payoneer_client_reference_id: str created_date: datetime created_by: Optional[str] = None approved_date: Optional[datetime] = None approved_by: Optional[str] = None updated_date: Optional[datetime] = None updated_by: Optional[str] = None account_id: int account_name: str collaborator_transaction_id: Optional[int] = None agreement_type: str payoneer_payment_id: Optional[str] = None payoneer_payment_status: Optional[PayoneerPaymentStatus] = None latest_payoneer_event: Optional[PayoneerEventType] = None latest_payoneer_event_reason: Optional[str] = None class PayoneerPayoutSchema(BaseSchema): """Schema for a single Payoneer payout item sent to ows-payee.""" client_reference_id: str payee_id: str amount: float currency: str description: str class DpPaymentAction(str, Enum): """Actions on DP payments.""" APPROVE = "approve"