Major update

This commit is contained in:
Azeez Muibi
2025-03-27 08:21:20 +01:00
parent 1a36416094
commit ba4d878daf
24 changed files with 776 additions and 254 deletions
+26
View File
@@ -0,0 +1,26 @@
from marshmallow import Schema, fields, validate
# ProvideLoan Request Schema
class ProvideLoanSchema(Schema):
requestId = fields.Str(required=False, description="Unique identifier of request")
transactionId = fields.Str(required=True, description="Unique identifier of transaction. This transaction Id must be consistent across all platforms")
customerId = fields.Str(required=True, description="Unique identifier of a customer")
accountId = fields.Str(required=True, description="Specific identifier of a user's account")
msisdn = fields.Str(required=False, description="User's mobile number in an international format")
productId = fields.Str(required=True, description="Identifier of a product chosen by user")
requestedAmount = fields.Float(required=True, description="Amount of loan that requested by user")
collectionType = fields.Int(required=True, description="Type of collection that user is preferred. 0 as soon as salary inflow occurs; 1- as soon as any new inflow occurs, 1 collection after XX days.",
validate=validate.OneOf([0, 1]))
offerId = fields.Int(required=True, description="Offer ID of the loan selected by Customer")
channel = fields.Str(required=True, description="Request channel: 'USSD' or 'MobileApp' or 'Web' - Reference Channel types",
validate=validate.OneOf(["USSD", "MobileApp", "Web", "100", "101", "102", "103"])) # Added numeric channel codes
# ProvideLoan Response Schema
class ProvideLoanResponseSchema(Schema):
requestId = fields.Str(required=True, description="Unique identifier of request")
transactionId = fields.Str(required=True, description="Unique identifier of transaction. This transaction Id must be consistent across all platforms")
customerId = fields.Str(required=True, description="Unique identifier of a customer")
accountId = fields.Str(required=True, description="Specific identifier of a user's account")
msisdn = fields.Str(required=False, description="User's mobile number in an international format")
resultCode = fields.Str(required=True, description="Result code of executed transaction, e.g. (00 Success etc.) see result codes table")
resultDescription = fields.Str(required=True, description="Description of provided result code")