"""Schema validation for payment minimum.""" from abacus_common_logic.marshalling.custom_fields import ma from abacus_common_logic.marshalling.custom_validations import not_blank class PaymentMinimumSchema(ma.Schema): """Shared payment minimum fields.""" payment_minimum_id = ma.IntegerId(required=True) currency_code = ma.NonemptyString(required=True) check_amount = ma.Decimal(required=True, as_string=True) wire_transfer_amount = ma.Decimal(required=True, as_string=True) western_union_amount = ma.Decimal(required=False, as_string=True, allow_none=True) currency_name = ma.NonemptyString() class PaymentMinimumListSchema(ma.Schema): """Schema for paginated list of payment minimums.""" items = ma.List(ma.Nested(PaymentMinimumSchema)) total_count = ma.Integer() class PaymentMinimumPutSchema(ma.Schema): """Schema for updating a payment minimum.""" payment_minimum_id = ma.IntegerId(required=True) check_amount = ma.Decimal(as_string=True, custom_validations=[not_blank]) wire_transfer_amount = ma.Decimal(as_string=True, custom_validations=[not_blank]) western_union_amount = ma.Decimal( allow_none=True, as_string=True, custom_validations=[not_blank] )