first commit

This commit is contained in:
CHIEFSOFT\ameye
2025-03-20 20:59:29 -04:00
commit e77edb9b45
107 changed files with 2257 additions and 0 deletions
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
from marshmallow import Schema, fields
from .sms import SMSSchema
# Bulk SMS Schema
class BulkSMSSchema(Schema):
requests = fields.List(fields.Nested(SMSSchema), required=True)
+16
View File
@@ -0,0 +1,16 @@
from marshmallow import Schema, fields
# Collect Loan Schema
class CollectLoanSchema(Schema):
transactionId = fields.Str(required=True)
fbnTransactionId = fields.Str(required=True)
debtId = fields.Str(required=True)
customerId = fields.Str(required=True)
accountId = fields.Str(required=True)
productId = fields.Str(required=True)
collectAmount = fields.Float(required=True)
penalCharge = fields.Float(required=False) # Optional
collectionMethod = fields.Int(required=True)
lienAmount = fields.Float(required=True)
countryId = fields.Str(required=True)
comment = fields.Str(required=False) # Optional
+11
View File
@@ -0,0 +1,11 @@
from marshmallow import Schema, fields
# Customer Consent Schema
class CustomerConsentSchema(Schema):
type = fields.Str(required=True)
transactionId = fields.Str(required=True)
customerId = fields.Str(required=True)
accountId = fields.Str(required=True)
requestTime = fields.DateTime(required=True, format="%Y-%m-%d %H:%M:%S.%f")
consentType = fields.Str(required=True)
channel = fields.Str(required=True)
+17
View File
@@ -0,0 +1,17 @@
from marshmallow import Schema, fields
# Disbursement Schema
class DisbursementSchema(Schema):
requestId = fields.Str(required=True, data_key="requestId")
debtId = fields.Str(required=True, data_key="debtId")
transactionId = fields.Str(required=True, data_key="transactionId")
customerId = fields.Str(required=True, data_key="customerId")
accountId = fields.Str(required=True, data_key="accountId")
productId = fields.Str(required=True, data_key="productId")
provideAmount = fields.Float(required=True, data_key="provideAmount")
collectAmountInterest = fields.Float(required=False, data_key="collectAmountInterest") # Optional
collectAmountMgtFee = fields.Float(required=True, data_key="collectAmountMgtFee")
collectAmountInsurance = fields.Float(required=True, data_key="collectAmountInsurance")
collectAmountVAT = fields.Float(required=True, data_key="collectAmountVAT")
countryId = fields.Str(required=True, data_key="countryId")
comment = fields.Str(required=False, data_key="comment") # Optional
+11
View File
@@ -0,0 +1,11 @@
from marshmallow import Schema, fields
class EligibilityCheckSchema(Schema):
type = fields.Str(required=True, description="Request type")
transactionId = fields.Str(data_key="transactionId", required=True, description="Transaction ID")
countryCode = fields.Str(data_key="countryCode", required=True, description="Country code (ISO)")
customerId = fields.Str(data_key="customerId", required=True, description="Customer ID")
accountId = fields.Str(data_key="accountId", required=True, description="Account ID")
msisdn = fields.Str(required=True, description="Mobile number")
lienAmount = fields.Float(required=True, description="Amount for lien")
channel = fields.Str(required=True, description="Transaction channel (USSD, Mobile, Web)")
+8
View File
@@ -0,0 +1,8 @@
from marshmallow import Schema, fields
# Lien Check Schema
class LienCheckSchema(Schema):
transactionId = fields.Str(required=True, metadata={"description": "Unique Identifier in Simbrella system"})
customerId = fields.Str(required=True, metadata={"description": "Unique identifier of customer"})
accountId = fields.Str(required=True, metadata={"description": "Unique identifier of account"})
countryId = fields.Str(required=True, metadata={"description": 'Set to static value "01"'})
+5
View File
@@ -0,0 +1,5 @@
from marshmallow import Schema, fields
# Loan Information Schema
class LoanInformationSchema(Schema):
loan_id = fields.Str(required=True)
+12
View File
@@ -0,0 +1,12 @@
from marshmallow import Schema, fields
# New Transaction Check Schema
class NewTransactionCheckSchema(Schema):
transactionId = fields.Str(required=True)
debtId = fields.Str(required=True)
transactionType = fields.Str(required=True, metadata={
"allowed_values": ["Disbursement", "Collection", "PenalCharge"]
})
fbnTransactionId = fields.Str(required=True)
origTransactionId = fields.Str(required=True)
customerId = fields.Str(required=True)
+14
View File
@@ -0,0 +1,14 @@
from marshmallow import Schema, fields
# Notification Callback Schema
class NotificationCallbackSchema(Schema):
fbnTransactionId = fields.Str(required=True)
transactionId = fields.Str(required=True)
customerId = fields.Str(required=True)
accountId = fields.Str(required=True)
debtId = fields.Str(required=True)
transactionType = fields.Str(required=True)
amountProvided = fields.Float(required=True)
amountCollected = fields.Float(required=True)
responseCode = fields.Str(required=True)
responseDescription = fields.Str(required=True)
+14
View File
@@ -0,0 +1,14 @@
from marshmallow import Schema, fields
# Penal Charge Schema
class PenalChargeSchema(Schema):
transactionId = fields.Str(required=True, metadata={"description": "Unique identifier of transaction in Simbrella system"})
fbnTransactionId = fields.Str(required=True, metadata={"description": "Unique id of the transaction received from FBN in Eligibility or Provision requests"})
debtId = fields.Str(required=True, metadata={"description": "Unique identifier of providing loan in Simbrella system"})
customerId = fields.Str(required=True, metadata={"description": "Unique identifier of a user"})
accountId = fields.Str(required=True, metadata={"description": "Specific identifier of a users account"})
penalCharge = fields.Decimal(required=True, metadata={"description": "Penalty amount that needs to be collected from users account"})
lienAmount = fields.Decimal(required=True, metadata={"description": "Aggregated (summed up) lien amount"})
countryId = fields.Str(required=True, metadata={"description": 'Set to static value "01"'})
comment = fields.Str(required=False, metadata={"description": "Any additional comment for provided loan operation"})
+16
View File
@@ -0,0 +1,16 @@
from marshmallow import Schema, fields
# Provide Loan Schema
class ProvideLoanSchema(Schema):
type = fields.Str(required=True)
requestId = fields.Str(required=True)
transactionId = fields.Str(required=True)
customerId = fields.Str(required=True)
accountId = fields.Str(required=True)
msisdn = fields.Str(required=False)
productId = fields.Str(required=True)
lienAmount = fields.Float(required=True)
requestedAmount = fields.Float(required=True)
collectionType = fields.Int(required=True)
loanType = fields.Int(required=True)
channel = fields.Str(required=True)
+23
View File
@@ -0,0 +1,23 @@
from marshmallow import Schema, fields
class RACItemSchema(Schema):
salaryAccount = fields.Bool(required=True)
bvn = fields.Str(required=True)
crc = fields.Bool(required=True)
crms = fields.Bool(required=True)
accountStatus = fields.Str(required=True)
lien = fields.Bool(required=True)
noBouncedCheck = fields.Bool(required=True)
existingLoan = fields.Bool(required=True)
whitelist = fields.Bool(required=True)
noPastDueSalaryLoan = fields.Bool(required=True)
noPastDueOtherLoans = fields.Bool(required=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)
RAC_Array = fields.List(fields.Nested(RACItemSchema), required=True)
+11
View File
@@ -0,0 +1,11 @@
from marshmallow import Schema, fields
# Repayment Schema
class RepaymentSchema(Schema):
type = fields.Str(required=True)
msisdn = fields.Str(required=False) #optional
debtId = fields.Str(required=True)
productId = fields.Str(required=True)
transactionId = fields.Str(required=True)
customerId = fields.Str(required=True)
channel = fields.Str(required=True)
+13
View File
@@ -0,0 +1,13 @@
from marshmallow import Schema, fields
# Revoke Enable Consent Schema
class RevokeEnableConsentSchema(Schema):
transactionId = fields.Str(required=True, metadata={"description": "Unique identifier of transaction in Simbrella system"})
fbnTransactionId = fields.Str(required=True, metadata={"description": "Unique id of the transaction received from FBN in CustomerConsentRequest"})
customerId = fields.Str(required=True, metadata={"description": "Unique identifier of a user"})
accountId = fields.Str(required=True, metadata={"description": "Specific identifier of a users account"})
processTime = fields.DateTime(required=True, metadata={"description": "Date and time when consent request was processed"})
consentType = fields.Str(required=True, metadata={"description": '“Enable” or “Revoke”'})
countryId = fields.Str(required=True, metadata={"description": 'Set to static value "01"'})
comment = fields.Str(required=False, metadata={"description": "Any additional comment for consent operation"})
+13
View File
@@ -0,0 +1,13 @@
from marshmallow import Schema, fields
# Select Offer Schema
class SelectOfferSchema(Schema):
requestId = fields.Str(required=True, description="Unique request identifier")
transactionId = fields.Str(required=True, description="Transaction ID")
customerId = fields.Str(required=True, description="Customer ID")
accountId = fields.Str(required=True, description="Account ID")
msisdn = fields.Str(required=True, description="Mobile number")
requestedAmount = fields.Float(required=True, description="Amount requested")
productId = fields.Str(required=True, description="Product ID")
channel = fields.Str(required=True, description="Transaction channel (e.g., USSD)")
+7
View File
@@ -0,0 +1,7 @@
from marshmallow import Schema, fields
# SMS Schema
class SMSSchema(Schema):
text = fields.Str(required=True)
dest = fields.Str(required=True)
unicode = fields.Bool(required=True)
+8
View File
@@ -0,0 +1,8 @@
from marshmallow import Schema, fields
# Token Validation Schema
class TokenValidationSchema(Schema):
RequestId = fields.Str(required=True)
UserId = fields.Str(required=True)
CountryId = fields.Str(required=True)
TokenCode = fields.Str(required=True)
+12
View File
@@ -0,0 +1,12 @@
from marshmallow import Schema, fields
# Transaction Verify Schema
class TransactionVerifySchema(Schema):
counter = fields.Str(required=True)
TransactionId = fields.Str(required=True)
requestID = fields.Str(required=True)
customerId = fields.Str(required=True)
accountId = fields.Str(required=True)
countryId = fields.Str(required=True) # Static value “01”
transactionType = fields.Str(required=True)