Files
suixinkan_uikit/suixinkan/Features/Payment/Models/PaymentModels.swift
汉秋 d8329d19fd Add instant payment collection flow aligned with Android.
Implement收款详情与收款记录 pages with pay-code API, QR generation, amount setting, and record grouping so merchants can collect payments from the home quick action.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 09:29:03 +08:00

104 lines
2.8 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// PaymentModels.swift
// suixinkan
//
import Foundation
/// URL
struct PayCodeResponse: Decodable, Sendable, Equatable {
let staticPayURL: String
let dynamicPayURL: String
enum CodingKeys: String, CodingKey {
case staticPayURL = "static_pay_url"
case dynamicPayURL = "dynamic_pay_url"
}
init(staticPayURL: String, dynamicPayURL: String) {
self.staticPayURL = staticPayURL
self.dynamicPayURL = dynamicPayURL
}
}
///
struct RepaymentCollectionRecordResponse: Decodable, Sendable, Equatable {
let analyse: [RepaymentCollectionRecordAnalyseItem]
let list: [RepaymentCollectionRecordItem]
init(
analyse: [RepaymentCollectionRecordAnalyseItem] = [],
list: [RepaymentCollectionRecordItem] = []
) {
self.analyse = analyse
self.list = list
}
}
///
struct RepaymentCollectionRecordAnalyseItem: Decodable, Sendable, Equatable, Hashable {
let date: String
let orderCount: Int
let orderAmountSum: String
enum CodingKeys: String, CodingKey {
case date
case orderCount = "order_count"
case orderAmountSum = "order_amount_sum"
}
init(date: String, orderCount: Int, orderAmountSum: String) {
self.date = date
self.orderCount = orderCount
self.orderAmountSum = orderAmountSum
}
}
///
struct RepaymentCollectionRecordItem: Decodable, Sendable, Equatable, Hashable {
let orderNumber: String
let userPhone: String
let orderAmount: String
let createDate: String
let createTime: String
enum CodingKeys: String, CodingKey {
case orderNumber = "order_number"
case userPhone = "user_phone"
case orderAmount = "order_amount"
case createDate = "create_date"
case createTime = "create_time"
}
init(
orderNumber: String,
userPhone: String,
orderAmount: String,
createDate: String,
createTime: String
) {
self.orderNumber = orderNumber
self.userPhone = userPhone
self.orderAmount = orderAmount
self.createDate = createDate
self.createTime = createTime
}
}
/// Android `RepaymentCollectionRecordGroup`
struct RepaymentCollectionRecordGroup: Sendable, Equatable, Hashable {
let analyse: RepaymentCollectionRecordAnalyseItem
let items: [RepaymentCollectionRecordItem]
}
///
struct PaymentMerchantInfo: Sendable, Equatable {
let name: String
let company: String
static let defaultInfo = PaymentMerchantInfo(
name: "元智享",
company: "扬州元智享网络科技有限公司"
)
}