"""Schema for Ledger Correction serialization.""" from abacus_common_logic.marshalling.custom_fields import ma from ledger.constants import constants class LedgerCorrectionSchema(ma.Schema): """Ledger Correction Schema.""" abacus_event_id = ma.NonNegativeInteger(required=True) worksheet_correction_id = ma.NonNegativeInteger(required=True) account_id = ma.NonNegativeInteger(required=True) contract_id = ma.NonNegativeInteger(allow_none=True) statement_period_id = ma.NonNegativeInteger(required=True) correction_statement_period_id = ma.NonNegativeInteger(required=True) correction_type = ma.Enum(options=constants.CORRECTION_TYPES, required=True) currency_code = ma.NonemptyString(required=True) gross_revenue = ma.Decimal(as_string=True, required=True) distribution_fee = ma.Decimal(as_string=True, required=True) mechanical_deduction_total = ma.Decimal(as_string=True, allow_none=True) mechanical_deduction_admin_fee_total = ma.Decimal(as_string=True, allow_none=True) net_revenue = ma.Decimal(as_string=True, required=True) note = ma.NonemptyString(allow_none=True) class LedgerCorrectionDetailSchema(LedgerCorrectionSchema): """Ledger Correction Detail Schema.""" ledger_correction_id = ma.NonNegativeInteger(required=True)