Visual_Novel_iOS/crush/Crush/Src/Models/User.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?
}