Implement bank transfer app flows
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
import Foundation
|
||||
|
||||
struct MibSession: Codable {
|
||||
let appId: String
|
||||
let xxid: String
|
||||
let nonceGenerator: String
|
||||
let sessionKey: String
|
||||
}
|
||||
|
||||
struct MibProfile: Codable, Identifiable {
|
||||
let profileId: String
|
||||
let customerProfileId: String
|
||||
let annexId: String
|
||||
let customerId: String
|
||||
let name: String
|
||||
let cifType: String
|
||||
let profileType: String
|
||||
let color: String
|
||||
let customerImage: String?
|
||||
|
||||
var id: String { profileId }
|
||||
}
|
||||
|
||||
struct MibCard: Codable, Identifiable {
|
||||
let cardId: String
|
||||
let maskedCardNumber: String
|
||||
let cardStatus: String
|
||||
let cardType: String
|
||||
let cardTypeDesc: String
|
||||
let customerId: String
|
||||
let phoneNumber: String
|
||||
let cardHolderName: String
|
||||
let loginTag: String
|
||||
|
||||
var id: String { cardId }
|
||||
}
|
||||
|
||||
struct MibFinanceDeal: Codable, Identifiable {
|
||||
let dealNo: String
|
||||
let productDesc: String
|
||||
let dealStatus: String
|
||||
let statusDesc: String
|
||||
let dealAmount: Double
|
||||
let paidAmount: Double
|
||||
let outstandingAmount: Double
|
||||
let dealDate: String
|
||||
let overdueAmount: Double
|
||||
let installmentAmount: Double
|
||||
let noOfInstallments: Int
|
||||
let lastPaidDate: String
|
||||
let lastPayAmount: Double
|
||||
let currency: String
|
||||
|
||||
var id: String { dealNo }
|
||||
}
|
||||
|
||||
struct MibTransferResult {
|
||||
let success: Bool
|
||||
let trxId: String
|
||||
let date: String
|
||||
let errorMessage: String
|
||||
}
|
||||
|
||||
enum MibError: LocalizedError {
|
||||
case networkError(String)
|
||||
case serverError(String)
|
||||
case sessionExpired
|
||||
case invalidCredentials
|
||||
case decryptionFailed
|
||||
case encryptionFailed
|
||||
case invalidResponse
|
||||
|
||||
var errorDescription: String? {
|
||||
switch self {
|
||||
case .networkError(let msg): return "Network error: \(msg)"
|
||||
case .serverError(let msg): return "Server error: \(msg)"
|
||||
case .sessionExpired: return "Session expired. Please log in again."
|
||||
case .invalidCredentials: return "Invalid credentials."
|
||||
case .decryptionFailed: return "Failed to decrypt response."
|
||||
case .encryptionFailed: return "Failed to encrypt request."
|
||||
case .invalidResponse: return "Unexpected server response."
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user