"""WorksheetAccountContractTaxableRevenue schemas.""" from abacus_common_logic.marshalling.custom_fields import ma from payment.constants import constants class WorksheetAccountContractTaxableRevenueCreateSchema(ma.Schema): """Schema for WorksheetAccountContractTaxableRevenue.""" account_id = ma.NonNegativeInteger(required=True) contract_id = ma.NonNegativeInteger(required=True) reference_payment_entity_id = ma.NonNegativeInteger(required=True) statement_period_id = ma.NonNegativeInteger(required=True) amount = ma.Decimal(as_string=True, required=True) currency_code = ma.NonemptyString(required=True) revenue_transaction_type = ma.Enum( options=constants.REVENUE_TRANSACTION_TYPES, data_key='revenue_transaction_type', required=True, ) is_us_revenue = ma.Boolean(required=True) class WorksheetAccountContractTaxableRevenueDetailSchema( WorksheetAccountContractTaxableRevenueCreateSchema ): """Schema for WorksheetAccountContractTaxableRevenue details.""" account_contract_taxable_revenue_id = ma.NonNegativeInteger(required=True) worksheet_account_contract_closing_balance_id = ma.NonNegativeInteger(required=True) class WorksheetAccountContractTaxableRevenueListSchema(ma.Schema): """Schema for WorksheetAccountContractTaxableRevenue list.""" items = ma.Nested(WorksheetAccountContractTaxableRevenueDetailSchema, many=True) total_count = ma.NonNegativeInteger(required=True) class WorksheetAccountContractTaxableRevenueFilterKeySchema(ma.Schema): """Filter key for filtering.""" contract_ids = ma.List(ma.NonNegativeInteger(), required=False) closing_balance_ids = ma.List(ma.NonNegativeInteger(), required=False) class WorksheetAccountContractTaxableRevenueFilterParamsPostSchema(ma.Schema): """Post request params for entries filtering.""" filters = ma.Nested( WorksheetAccountContractTaxableRevenueFilterKeySchema, required=False, load_default={}, ) class TaxableRevenueCatchupFilterKeySchema(ma.Schema): """Filter key for filtering.""" account_ids = ma.List(ma.NonNegativeInteger(), required=False) class TaxableRevenueCatchupFilterParamsPostSchema(ma.Schema): """Post request params for entries filtering.""" filters = ma.Nested( TaxableRevenueCatchupFilterKeySchema, required=False, load_default={}, )