89 lines
2.0 KiB
Swift
89 lines
2.0 KiB
Swift
//
|
|
// User.swift
|
|
// Crush
|
|
//
|
|
// Created by Leon on 2025/7/12.
|
|
//
|
|
|
|
import CodableWrappers
|
|
import Foundation
|
|
import UIKit
|
|
|
|
enum Sex: Int, Codable {
|
|
case male = 0
|
|
case female = 1
|
|
case noncomfirming = 2
|
|
|
|
var localizedText: String {
|
|
switch self {
|
|
case .male:
|
|
return NSLocalizedString("Male", comment: "Gender: Male")
|
|
case .female:
|
|
return NSLocalizedString("Female", comment: "Gender: Female")
|
|
case .noncomfirming:
|
|
return NSLocalizedString("Nonconforming", comment: "Gender: Non-binary/Nonconforming")
|
|
}
|
|
}
|
|
|
|
var icon: UIImage {
|
|
switch self {
|
|
case .male:
|
|
return UIImage(named: "sex_male_flag")!
|
|
case .female:
|
|
return UIImage(named: "sex_female_flag")!
|
|
case .noncomfirming:
|
|
return UIImage(named: "sex_no_gender_flag")!
|
|
}
|
|
}
|
|
}
|
|
|
|
@objcMembers class User: NSObject, Codable {
|
|
var nickname: String?
|
|
// @CustomCodingKey("id")
|
|
var userId: Int = 0
|
|
var sex: Sex = .noncomfirming
|
|
// var age: Int = 0
|
|
var token: String?
|
|
/// yyyy-mm-dd
|
|
var birthday: Int64?
|
|
/// 是否需要强制完善用户基础信息
|
|
var cpUserInfo: Bool = false
|
|
/// 头像
|
|
var headImage: String?
|
|
|
|
var thirdEmail: String?
|
|
var thirdNickname: String?
|
|
var thirdType : ThirdType?
|
|
var idCard: String?
|
|
/// 是否是会员
|
|
var isMember: Bool?
|
|
/// 已创建AI数量
|
|
var createdAiCount: Int?
|
|
/// 可创建AI数量
|
|
var canCreateAiCount: Int?
|
|
|
|
func canCreateAIRole()-> Bool{
|
|
guard let created = createdAiCount, let totalCount = canCreateAiCount else{return false}
|
|
return totalCount > created
|
|
}
|
|
}
|
|
|
|
struct ThirdLoginResponse: Codable {
|
|
var token: String?
|
|
}
|
|
|
|
|
|
struct UserCreateCountResponse: Codable{
|
|
/// 免费创作次数
|
|
var freeNum: Int?
|
|
var usedFreeNum: Int?
|
|
|
|
/// 会员赠送创作次数
|
|
var memberNum: Int?
|
|
var usedMemberNum:Int?
|
|
|
|
/// 购买创作次数
|
|
var buyNum: Int?
|
|
var usedBuyNum: Int?
|
|
}
|