// // UserConfigModel.swift // QuickLocation // // Created by 八条 on 2026/5/26. // import ObjectMapper import RxDataSources struct UserConfigModel: Mappable { var token: String? var phone: String? var name: String? var avater: String? /// 头像,对应本地图标 var head_pic: String = "1" /// 展示用头像:优先上传 URL(head_pic 或 avater),否则本地序号 var displayHeadPic: String { HeadPic.resolved(head_pic, avater) } /// 用户头像 var userIcon: UIImage { HeadPic.image(for: displayHeadPic) } /// 性别 var sex: Int = -1 /// 是否游客 var temp: Bool = true /// 用户 ID var uid: String? /// 状态:0、无状态 1、SOS 2、气泡等 var status: Int = 0 /// 心情:0、无状态 1、开心 2、愤怒 var mood: Int = 0 /// Config var config: SystemConfigModel? init?(map: Map) { } mutating func mapping(map: Map) { token <- map["token"] temp <- map["temp"] phone <- map["phone"] name <- map["name"] uid <- (map["user_id"], kFlexString) avater <- map["avater"] sex <- map["sex"] head_pic <- (map["head_pic"], kFlexString) config <- map["config"] status <- map["status"] mood <- map["mood"] } } struct SystemConfigModel: Mappable { /// 弹窗配置 // var popupConfig: PopupWindowConfigModel? /// 弹窗时间配置 // var timeConfig: PopupWindowTimeModel? /// 微信分享配置 var shareConfig: WxShareConfigModel? /// 飞鸽传书发送次数 var pigeonConfig: PigeonTimeSettingModel? /// 版本更新 var versionUpgradeModel: VersionUpgradeModel? /// 聊天界面的警告说明 var chatWarning: String = "" /// 探索里的banner配置 var bannerList: [BannerConfigModel] = [] /// 圈子里的banner var groupBannerList: [String] = [] init?(map: Map) { } mutating func mapping(map: Map) { chatWarning <- map["client.chatwarning", nested: false] groupBannerList <- map["client.team.ad", nested: false] // timeConfig <- map["client.time.setting", nested: false] pigeonConfig <- map["client.time.setting.pigeon", nested: false] shareConfig <- map["client.weixin.share", nested: false] versionUpgradeModel <- map["client.version.upgrade", nested: false] bannerList <- map["client.banner.explore", nested: false] } } struct PigeonTimeSettingModel: Mappable { /// 时间窗口内最多发送次数 var nums: Int = 0 /// 窗口长度(秒) var times: Int = 0 init?(map: Map) {} mutating func mapping(map: Map) { nums <- (map["nums"], kStrTransformInt) times <- (map["times"], kStrTransformInt) } var isEnabled: Bool { nums > 0 && times > 0 } } struct WxShareConfigModel: Mappable { /// 链接 var link: String = "" /// 标题 var title: String = "" /// 内容 var content: String = "" /// 图标 var image: String = "" init?(map: Map) { } mutating func mapping(map: Map) { link <- map["link"] title <- map["title"] content <- map["content"] image <- map["image"] } } struct VersionUpgradeModel: Mappable { /// 下载地址 var url: String = "" /// 标题 var title: String = "" /// 内容 var description: String = "" /// 版本 var version: String = "" /// 强制更新 var force: Bool = false init?(map: Map) { } mutating func mapping(map: Map) { url <- map["url"] title <- map["title"] description <- map["description"] force <- map["force"] version <- map["version"] } } struct BannerConfigModel: Mappable { /// 图片地址 var img: String = "" /// url:member跳cz页 url:网页地址 var url: String = "" /// app:原生应用内跳转 web:跳转网页 var type: String = "" var enable: Bool = false /// 备注 var text: String = "" init?(map: Map) { } mutating func mapping(map: Map) { img <- map["img"] url <- map["url"] type <- map["type"] enable <- map["enable"] text <- map["text"] } }