"""WorksheetTaxCorrection schemas.""" from abacus_common_logic.marshalling.custom_fields import ma class WorksheetTaxCorrectionCreateSchema(ma.Schema): """Schema for WorksheetTaxCorrection.""" account_id = ma.NonNegativeInteger(required=True) contract_id = ma.NonNegativeInteger(required=True) correction_statement_period_id = ma.NonNegativeInteger(required=True) payable_detail_type_id = ma.NonNegativeInteger(required=True) amount = ma.Decimal(as_string=True, required=True) currency_code = ma.NonemptyString(required=True) note = ma.String(required=False, allow_none=True) class WorksheetTaxCorrectionDetailSchema(WorksheetTaxCorrectionCreateSchema): """Schema for WorksheetTaxCorrection detail.""" worksheet_tax_correction_id = ma.NonNegativeInteger(required=True) class WorksheetTaxCorrectionsFilterKeySchema(ma.Schema): """Filter key for filtering.""" correction_statement_period_id = ma.NonNegativeInteger(required=False) contract_ids = ma.List(ma.NonNegativeInteger(), required=False) class WorksheetTaxCorrectionsFilterParamsPostSchema(ma.Schema): """Post request params for entries filtering.""" filters = ma.Nested( WorksheetTaxCorrectionsFilterKeySchema, required=False, load_default={} ) class WorksheetTaxCorrectionsListSchema(ma.Schema): """ WorksheetTaxCorrection records list. Attributes: items ([WorksheetTaxCorrectionDetailSchema]): list of items. total_count (int): Total count. """ items = ma.Nested(WorksheetTaxCorrectionDetailSchema, many=True) total_count = ma.NonNegativeInteger(required=True) class TaxCorrectionDeleteRequestSchema(ma.Schema): """Worksheet tax correction ids for deleting.""" worksheet_tax_correction_ids = ma.List(ma.NonNegativeInteger(), required=True)