from marshmallow import Schema, fields, validate, EXCLUDE from marshmallow.validate import OneOf, Range class RepaymentSchema(Schema): requestId = fields.Str(required=True) sessionId = fields.Str(required=True) affiliateCode = fields.Str(required=True) customerId = fields.Str(required=True) msisdn = fields.Str(required=True) debtId = fields.Int(required=True, validate=Range(min=1)) repaymentAmount = fields.Decimal(required=False) # Optional, required for "Manual" repaymentType repaymentType = fields.Str(required=True) # "Full", "Due", "Manual", "Overdue" channel = fields.Str(required=True) class Meta: unknown = EXCLUDE