//
//  NoticeModels.swift

//
//  Created by Leon on 2025/8/28.
//

struct MessageStat: Codable {
    var unRead: Int?
    var latestContent: String?
    /// 时间戳
    var latestTime: Int?
}

struct MessageNotice: Codable {
    var id: Int? // 消息ID
    var sendUserId: Int? // 发送人用户ID
    var type: MessageType? // 消息类型
    var bizId: String? // 业务ID
    var status: Int? // 消息状态（0未读、1已读）
    var title: String? // 消息标题
    var content: String? // 消息内容
    /// "{\"aiId\":439059452002305}"
    var extras: String? // 消息扩展内容
    var replaceJson: String? // 国际化翻译替换数据
    var createTime: Int?
    
    func getExtra() -> MessageNoticeExtra?{
        guard let extrasString = extras, extrasString.count > 0 else{
            return nil
        }
        return CodableHelper.decode(MessageNoticeExtra.self, from: extrasString)
    }
}

struct MessageNoticeExtra: Codable{
    var aiId: Int?
}

enum MessageType: Int, Codable{
    case loginWelcome = 100
    case aiwelcomeGreeting = 101
    case vipRenewSuccess = 102
    case vipRenewFail = 103
    case myAiGifted = 104
    case myAiAlbumPhotoUnlock = 105
    case heartBeatLevelDown = 106
    
    func hasNoCheckEntrance()-> Bool{
        switch self{
        case .loginWelcome, .aiwelcomeGreeting:
            return true
        default:
            return false
        }
    }
}
