26 lines
2.3 KiB
Python
26 lines
2.3 KiB
Python
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") |