58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Swift
		
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Swift
		
	
	
	
| //
 | ||
| //  NoticeModels.swift
 | ||
| //  Crush
 | ||
| //
 | ||
| //  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
 | ||
|         }
 | ||
|     }
 | ||
| }
 |