from marshmallow import Schema, fields from marshmallow import Schema, fields from datetime import date class RACItemSchema(Schema): PROCESS_DATE = fields.Date(required=True, default=date.today) CIF_ID = fields.Str(required=True) CUSTOMER_id = fields.Str(required=True) SALACCT_1 = fields.Str(required=True) ALERT_PHONE = fields.Str(required=True) AVERAGE_SALARY = fields.Decimal(required=True, as_string=True) LOAN_OUSTANDING_BAL = fields.Decimal(required=True, as_string=True) EMI = fields.Decimal(required=True, as_string=True) ELIG_AMT = fields.Decimal(required=True, as_string=True) rule1_45day_sal = fields.Bool(required=True) rule2_2m_sal = fields.Bool(required=True) rule3_no_bounced_check = fields.Bool(required=True) rule4_current_loan_payments = fields.Bool(required=True) rule5_no_past_due_fadv_loan = fields.Bool(required=True) rule6_no_past_due_other_loan = fields.Bool(required=True) rule7_consistent_salary_amount = fields.Bool(required=True) rule8_whitelisted = fields.Bool(required=True) rule9_regular_account = fields.Bool(required=True) rule10_bvn_validation = fields.Bool(required=True) rule11_CRC_no_delinquency = fields.Bool(required=True) rule12_CRMS_no_delinquency = fields.Bool(required=True) rule13_BVN_ignore = fields.Bool(required=True) rule14_no_lien = fields.Bool(required=True) rule15_null_ignore = fields.Bool(required=True) OVERALL_ELIG = fields.Bool(required=True) SALARYPAYMENT_1 = fields.Decimal(required=True, as_string=True) SALARYPAYMENT_2 = fields.Decimal(required=True, as_string=True) SALARYPAYMENT_3 = fields.Decimal(required=True, as_string=True) SALARYPAYMENT_4 = fields.Decimal(required=True, as_string=True) SALARYPAYMENT_5 = fields.Decimal(required=True, as_string=True) SALARYPAYMENT_6 = fields.Decimal(required=True, as_string=True) # RAC Check Schema class RACCheckSchema(Schema): transactionId = fields.Str(required=True) fbnTransactionId = fields.Str(required=True) customerId = fields.Str(required=True) accountId = fields.Str(required=True) channel = fields.Str(required=True) countryCode = fields.Str(required=True) class RACCheckResponseSchema(Schema): transactionId = fields.Str(required=True) customerId = fields.Str(required=True) accountId = fields.Str(required=True) racResponse = fields.Nested(RACItemSchema, required=True)