"""Schemas for Ledger Contract Advance Applied serialization.""" from abacus_common_logic.marshalling.custom_fields import ma class LedgerContractAdvancePostSchema(ma.Schema): """Ledger Contract Advance POST schema.""" abacus_event_id = ma.NonNegativeInteger(required=True) account_id = ma.NonNegativeInteger(required=True) contract_id = ma.NonNegativeInteger(required=True) statement_period_id = ma.NonNegativeInteger(required=True) advance_amount = ma.Decimal(as_string=True, required=True) advance_currency_code = ma.NonemptyString(required=True) account_payment_currency_code = ma.NonemptyString(required=True) exchange_rate = ma.Decimal(as_string=True) vat_amount = ma.Decimal( as_string=True, required=False, allow_none=True, ) withholding_tax_amount = ma.Decimal(as_string=True, required=False, allow_none=True) amount_after_withholding_and_vat = ma.Decimal( as_string=True, required=True, allow_none=False, ) us_source_income_rate = ma.Decimal( as_string=True, required=False, allow_none=True, ) worksheet_payment_contract_advance_id = ma.NonNegativeInteger( required=True, allow_none=False, ) advance_amount_payee_currency = ma.Decimal( as_string=True, required=True, allow_none=False, ) amount_after_withholding_and_vat_payee_currency = ma.Decimal( as_string=True, required=True, allow_none=False, ) withholding_tax_amount_payee_currency = ma.Decimal( as_string=True, required=True, allow_none=False, ) vat_amount_payee_currency = ma.Decimal( as_string=True, required=True, allow_none=False, ) class LedgerContractAdvanceAppliedDetailSchema(ma.Schema): """Schema for serializing LedgerContractAdvanceApplied detail.""" ledger_contract_advance_applied_id = ma.NonNegativeInteger(required=True) abacus_event_id = ma.NonNegativeInteger(required=True) account_id = ma.NonNegativeInteger(required=True) contract_id = ma.NonNegativeInteger(required=True) contract_advance_id = ma.NonNegativeInteger() statement_period_id = ma.NonNegativeInteger(required=True) advance_amount = ma.Decimal(as_string=True, required=True) advance_currency_code = ma.NonemptyString(required=True) advance_amount_payee_currency = ma.Decimal(as_string=True, required=True) advance_payee_currency_code = ma.NonemptyString(required=True) vat_amount = ma.Decimal(as_string=True, required=False, allow_none=True) vat_amount_payee_currency = ma.Decimal( as_string=True, required=False, allow_none=True ) withholding_tax_amount = ma.Decimal(as_string=True, required=False, allow_none=True) withholding_tax_amount_payee_currency = ma.Decimal( as_string=True, required=False, allow_none=True ) amount_after_withholding_and_vat = ma.Decimal( as_string=True, required=False, allow_none=True ) amount_after_withholding_and_vat_payee_currency = ma.Decimal( as_string=True, required=False, allow_none=True ) us_source_income_rate = ma.Decimal(as_string=True, required=False, allow_none=True) worksheet_payment_contract_advance_id = ma.NonNegativeInteger( required=False, allow_none=True ) exchange_rate = ma.Decimal(as_string=True, required=False, allow_none=True)