192 lines
4.4 KiB
Swift
192 lines
4.4 KiB
Swift
//
|
||
// 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"]
|
||
}
|
||
}
|