using IM_API.Tools; namespace IM_API.Dtos { public class HubResponse { public int Code { get; init; } public string Method { get; init; } public HubResponseType Type { get; init; } public string Message { get; init; } public T? Data { get; init; } public HubResponse(string method) { Code = CodeDefine.SUCCESS.Code; Message = CodeDefine.SUCCESS.Message; Type = HubResponseType.ActionStatus; Method = method; } public HubResponse(string method,T data) { Code = CodeDefine.SUCCESS.Code; Message = CodeDefine.SUCCESS.Message; Type = HubResponseType.ActionStatus; Data = data; Method = method; } public HubResponse(CodeDefine codedefine,string method) { Code = codedefine.Code; Method = method; Message = codedefine.Message; Type = HubResponseType.ActionStatus; } public HubResponse(CodeDefine codeDefine, string method, HubResponseType type, T? data) { Code = codeDefine.Code; Method = method; Type = type; Message = codeDefine.Message; Data = data; } public HubResponse(HubResponseType type, T? data) { Code = CodeDefine.SUCCESS.Code; Method = "Event"; Type = type; Data = data; } } public enum HubResponseType { // --- 基础聊天 (10-19) --- ChatMsg = 1, // 普通消息 // --- 系统与通知 (20-29) --- SystemNotice = 2, // 通用系统通知 FriendRequest = 21, // 好友申请消息 FriendAccepted = 22, // 好友通过通知 UserInLine = 23, // 好友上线/下线通知 // --- 状态变更与交互 (30-39) --- ActionStatus = 3, // 通用状态(正在输入等) MsgReadReceipt = 31, // 已读回执 MsgRevoke = 32, // 消息撤回 MsgEdit = 33, // 消息二次编辑更新 // --- 群组管理 (40-49) --- GroupInvited = 41, // 被邀请入群 GroupMemberUpdate = 42, // 群成员变动(进群/退群) GroupAnnouncement = 43, // 群公告更新 GroupDismissed = 44, // 群组解散 // --- 实时通信控制 (50-59) --- RTC_CallRequest = 51, // 音视频通话邀请 RTC_CallHandled = 52, // 音视频接听/挂断/取消状态 // --- 异常与安全 (90-99) --- ErrorInternal = 91, // 服务器内部错误 TokenExpired = 92, // 登录过期,强制下线 KickedOut = 93 // 被挤下线(异地登录) } }