76 lines
1.8 KiB
Swift
76 lines
1.8 KiB
Swift
|
|
//
|
|||
|
|
// IMBaseRemoteInfo.swift
|
|||
|
|
// Crush
|
|||
|
|
//
|
|||
|
|
// Created by Leon on 2025/8/18.
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
import UIKit
|
|||
|
|
|
|||
|
|
// 各类数据模型
|
|||
|
|
enum MsgOptType: Int, Codable {
|
|||
|
|
case unknow = 0
|
|||
|
|
case upvote = 1
|
|||
|
|
case downvote = 2
|
|||
|
|
|
|||
|
|
init(from decoder: Decoder) throws {
|
|||
|
|
let container = try decoder.singleValueContainer()
|
|||
|
|
let rawValue = try? container.decode(Int.self)
|
|||
|
|
self = MsgOptType(rawValue: rawValue ?? 0) ?? .unknow
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
serverExtension 和 customAttachment的后端数据
|
|||
|
|
*/
|
|||
|
|
class IMBaseRemoteInfo: Codable{
|
|||
|
|
|
|||
|
|
var cellType: SessionCellType! = .text
|
|||
|
|
/// 显示用的text
|
|||
|
|
var displayString: String?
|
|||
|
|
|
|||
|
|
var type: String?
|
|||
|
|
|
|||
|
|
/// 消息点赞或踩
|
|||
|
|
var optType : MsgOptType?
|
|||
|
|
|
|||
|
|
/// 消息评分(在消息扩展字段)
|
|||
|
|
var score: CGFloat?
|
|||
|
|
|
|||
|
|
/// 只在自定义消息中存在
|
|||
|
|
var customAttachment: IMCustomAttachment?
|
|||
|
|
|
|||
|
|
/// 心动分值(String) in Conversation的serverExtension
|
|||
|
|
var heartbeatVal: CGFloat?
|
|||
|
|
/// 心动等级 in Conversation的serverExtension
|
|||
|
|
var heartbeatLevel: HeartbeatLevel?
|
|||
|
|
/// 关系展示开关 in Conversation serverExtension
|
|||
|
|
var isShow: Bool?
|
|||
|
|
|
|||
|
|
/// 通过 SessionBaseModel 的数据,快捷获取对应的 后端数据IMBaseRemoteInfo
|
|||
|
|
static func getBaseInfo(model: SessionBaseModel) -> IMBaseRemoteInfo {
|
|||
|
|
var baseInfo: IMBaseRemoteInfo!
|
|||
|
|
if model.baseRemoteInfo != nil {
|
|||
|
|
baseInfo = model.baseRemoteInfo
|
|||
|
|
} else {
|
|||
|
|
baseInfo = IMRemoteUtil.dealRemoteInfo(message: model.v2msg)
|
|||
|
|
model.baseRemoteInfo = baseInfo
|
|||
|
|
}
|
|||
|
|
return baseInfo
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
class IMYidunExtInfo: Codable {
|
|||
|
|
var ext: String?
|
|||
|
|
var priceUnitDesc: String?
|
|||
|
|
var type: String?
|
|||
|
|
var version: String?
|
|||
|
|
var taskId: String?
|
|||
|
|
|
|||
|
|
var code: Int?
|
|||
|
|
var suggestion: Int?
|
|||
|
|
var status: Int?
|
|||
|
|
|
|||
|
|
}
|