from marshmallow import Schema, fields # RACResponse Schema class RACResponseSchema(Schema): Salary_account = fields.Str(data_key="Salary account", required=True, description="Has Salary account or Not (1 = Yes, 0 = No)") BVN = fields.Str(required=False, description="BVN Ok (1 = Yes, 0 = No)") BVNAttachedToAccount = fields.Str(required=True, description="BVN attached to account (1 = Yes, 0 = No)") CRMS = fields.Str(required=True, description="No Delinquent loan in CRMS (1 = Yes, 0 = No)") CRC = fields.Str(required=True, description="No Delinquent loan in CRC (1 = Yes, 0 = No)") AccountStatus = fields.Str(required=True, description="Has 'Regular' account status (1 = Yes, 0 = No)") Lien = fields.Str(required=True, description="No Lien on account (1 = Yes, 0 = No)") NoBouncedCheck = fields.Str(required=True, description="No Bounced Check (1 = Yes, 0 = No)") Whitelist = fields.Str(required=True, description="Not blacklisted (1 = Yes, 0 = No)") NoPastDueSalaryLoan = fields.Str(required=True, description="No Past Due Salary Loan (1 = Yes, 0 = No)") NoPastDueOtherLoan = fields.Str(required=True, description="No Past Due Other Loans (1 = Yes, 0 = No)") # RACCheck Request Schema class RACCheckSchema(Schema): transactionId = fields.Str(required=True, description="Unique identifier of transaction. This transaction Id must be consistent across all platforms") fbnTransactionId = fields.Str(required=True, description="Unique id of the transaction received from FBN in Eligibility or Provision requests") customerId = fields.Str(required=True, description="Unique identifier of a user") accountId = fields.Str(required=True, description="Specific identifier of a user's account") RAC_Array = fields.List(fields.Str(), required=True, description="Array of RAC items to check (BVN, CRC, CRMS, Salary account, lien, whitelist, lien, account status, no bounced check and existing loan)") # RACCheck Response Schema class RACCheckResponseSchema(Schema): transactionId = fields.Str(required=True, description="Unique identifier of transaction in Simbrella system") customerId = fields.Str(required=True, description="Unique identifier of a user") accountId = fields.Str(required=True, description="Specific identifier of a user's account") RACResponse = fields.Nested(RACResponseSchema, required=True, description="Object containing binary responses for each RAC check") resultCode = fields.Str(required=False, description="Result code of executed transaction") resultDescription = fields.Str(required=True, description="Description of provided result code")