71 行
1.4 KiB
Swift
71 行
1.4 KiB
Swift
|
|
import Foundation
|
||
|
|
|
||
|
|
struct LicenseFile: Codable {
|
||
|
|
let appKey: String
|
||
|
|
let appName: String?
|
||
|
|
let companyName: String?
|
||
|
|
let baseUrl: String?
|
||
|
|
let issuedAt: String?
|
||
|
|
let expiresAt: String?
|
||
|
|
}
|
||
|
|
|
||
|
|
public struct LicenseUserInfo: Sendable {
|
||
|
|
public let userId: String?
|
||
|
|
public let name: String?
|
||
|
|
public let email: String?
|
||
|
|
public let phone: String?
|
||
|
|
|
||
|
|
public init(userId: String? = nil, name: String? = nil, email: String? = nil, phone: String? = nil) {
|
||
|
|
self.userId = userId
|
||
|
|
self.name = name
|
||
|
|
self.email = email
|
||
|
|
self.phone = phone
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum LicenseStatus: Sendable {
|
||
|
|
case ok
|
||
|
|
case denied
|
||
|
|
case unknown
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum LicenseResult: Sendable {
|
||
|
|
case success(String)
|
||
|
|
case error(String)
|
||
|
|
}
|
||
|
|
|
||
|
|
struct UserInfoPayload: Encodable {
|
||
|
|
let userId: String?
|
||
|
|
let name: String?
|
||
|
|
let email: String?
|
||
|
|
let phone: String?
|
||
|
|
}
|
||
|
|
|
||
|
|
struct RegisterRequest: Encodable {
|
||
|
|
let appKey: String
|
||
|
|
let deviceId: String
|
||
|
|
let deviceName: String?
|
||
|
|
let deviceModel: String
|
||
|
|
let deviceVendor: String
|
||
|
|
let osVersion: String
|
||
|
|
let userInfo: UserInfoPayload?
|
||
|
|
}
|
||
|
|
|
||
|
|
struct VerifyRequest: Encodable {
|
||
|
|
let appKey: String
|
||
|
|
let deviceId: String
|
||
|
|
let token: String
|
||
|
|
let userInfo: UserInfoPayload?
|
||
|
|
}
|
||
|
|
|
||
|
|
struct RegisterResponse: Decodable {
|
||
|
|
let success: Bool
|
||
|
|
let token: String?
|
||
|
|
let message: String?
|
||
|
|
}
|
||
|
|
|
||
|
|
struct VerifyResponse: Decodable {
|
||
|
|
let valid: Bool
|
||
|
|
let error: String?
|
||
|
|
}
|