jsdw_ios/QuickLocation/Model/GroupModel.swift

193 lines
4.4 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// GroupModel.swift
// QuickLocation
//
// Created by on 2026/5/30.
//
import ObjectMapper
import RxDataSources
///
struct UserGroupResponse: BaseModelProtocol {
//
var code: String?
//
var message: String?
//
var model: GroupModel?
init?(map: Map) {}
mutating func mapping(map: Map) {
code <- map["code"]
message <- map["msg"]
model <- map["data"]
}
}
///
struct RecommandGroupResponse: BaseModelProtocol {
//
var code: String?
//
var message: String?
//
var list: [GroupInfoModel] = []
init?(map: Map) {}
mutating func mapping(map: Map) {
code <- map["code"]
message <- map["msg"]
list <- map["data"]
}
}
///
struct GroupInfoResponse: BaseModelProtocol {
//
var code: String?
//
var message: String?
//
var model: GroupInfoModel?
//
var list: [GroupMemberModel] = []
init?(map: Map) {}
mutating func mapping(map: Map) {
code <- map["code"]
message <- map["msg"]
model <- map["data.attr"]
list <- map["data.employee"]
}
}
struct GroupModel: Mappable {
///
var default_group_key: String = ""
///
var has_unread_email: Bool = false
/// SOS
var is_anyone_sos: Bool = false
///
var groups: [GroupInfoModel] = []
///
var select_group_employee: [GroupMemberModel] = []
var score: Int = 0
init?(map: Map) {
}
mutating func mapping(map: Map) {
default_group_key <- map["default_group_key"]
has_unread_email <- map["has_unread_email"]
is_anyone_sos <- map["is_anyone_sos"]
score <- map["score"]
groups <- map["groups"]
select_group_employee <- map["select_group_employee"]
}
}
struct GroupInfoModel: Mappable, Equatable {
///
var group_key: String = ""
///
var is_owner: Bool = false
///
var name: String = ""
/// icon
var icon_index: Int = 1
var groupIcon: UIImage {
UIImage(named: "GroupIcon/\(icon_index)") ?? UIImage()
}
///
var people_no: Int = 0
///
var description: String = ""
///
var level: String = ""
init?(map: Map) {
}
mutating func mapping(map: Map) {
group_key <- map["group_key"]
is_owner <- map["is_owner"]
name <- map["name"]
icon_index <- map["icon_index"]
level <- map["level"]
people_no <- (map["people_no"], kStrTransformInt)
}
}
extension GroupInfoModel: IdentifiableType {
public typealias Identity = String
public var identity: String {
return group_key
}
}
struct GroupMemberModel: Mappable, Equatable {
///
var user_id: String = ""
///
var head_pic: String = "1"
///
var userIcon: UIImage {
UIImage(named: "UserIcon/\(head_pic)") ?? UIImage()
}
///
var nick_name: String = ""
/// 1 2 3 4
var level: Int = 1
var vipIcon: UIImage {
if level != 2 || level != 4 {
return UIImage(named: "VipIcon/1") ?? UIImage()
}
return UIImage(named: "VipIcon/\(level)") ?? UIImage()
}
/// 线
var is_online: Bool = false
///
var battery: String = ""
/// 线
var last_active_time: Int = 0
///
var last_position: String = ""
var lastLocation: String {
guard last_position.contains(":") else { return "" }
let arr = last_position.components(separatedBy: ":")
return arr.last ?? ""
}
init?(map: Map) {
}
mutating func mapping(map: Map) {
user_id <- map["user_id"]
head_pic <- map["head_pic"]
level <- (map["level"], kStrTransformInt)
nick_name <- map["nick_name"]
battery <- map["battery"]
last_position <- map["last_position"]
is_online <- map["is_online"]
}
}
extension GroupMemberModel: IdentifiableType {
public typealias Identity = String
public var identity: String {
return user_id
}
}