Revert "提交"

This reverts commit b96d895809.
This commit is contained in:
2026-02-12 21:59:08 +08:00
parent b96d895809
commit d429560511
339 changed files with 46657 additions and 46655 deletions
+4 -4
View File
@@ -1,4 +1,4 @@
namespace IM_API.Dtos.Auth
{
public record RefreshDto(string refreshToken);
}
namespace IM_API.Dtos.Auth
{
public record RefreshDto(string refreshToken);
}
+17 -17
View File
@@ -1,17 +1,17 @@
using IM_API.Tools;
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Auth
{
public class LoginRequestDto
{
[Required(ErrorMessage = "用户名不能为空")]
[StringLength(20, ErrorMessage = "用户名不能超过20字符")]
[RegularExpression(@"^[A-Za-z0-9]+$",ErrorMessage = "")]
public string Username { get; set; }
[Required(ErrorMessage = "密码不能为空")]
[StringLength(50, ErrorMessage = "密码不能超过50字符")]
public string Password { get; set; }
}
}
using IM_API.Tools;
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Auth
{
public class LoginRequestDto
{
[Required(ErrorMessage = "用户名不能为空")]
[StringLength(20, ErrorMessage = "用户名不能超过20字符")]
[RegularExpression(@"^[A-Za-z0-9]+$",ErrorMessage = "")]
public string Username { get; set; }
[Required(ErrorMessage = "密码不能为空")]
[StringLength(50, ErrorMessage = "密码不能超过50字符")]
public string Password { get; set; }
}
}
+19 -19
View File
@@ -1,19 +1,19 @@
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Auth
{
public class RegisterRequestDto
{
[Required(ErrorMessage = "用户名不能为空")]
[MaxLength(20, ErrorMessage = "用户名不能超过20字符")]
[RegularExpression(@"^[A-Za-z0-9]+$", ErrorMessage = "")]
public string Username { get; set; }
[Required(ErrorMessage = "密码不能为空")]
[MaxLength(50, ErrorMessage = "密码不能超过50字符")]
public string Password { get; set; }
[Required(ErrorMessage = "昵称不能为空")]
[MaxLength(20, ErrorMessage = "昵称不能超过20字符")]
public string? NickName { get; set; }
}
}
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Auth
{
public class RegisterRequestDto
{
[Required(ErrorMessage = "用户名不能为空")]
[MaxLength(20, ErrorMessage = "用户名不能超过20字符")]
[RegularExpression(@"^[A-Za-z0-9]+$", ErrorMessage = "")]
public string Username { get; set; }
[Required(ErrorMessage = "密码不能为空")]
[MaxLength(50, ErrorMessage = "密码不能超过50字符")]
public string Password { get; set; }
[Required(ErrorMessage = "昵称不能为空")]
[MaxLength(20, ErrorMessage = "昵称不能超过20字符")]
public string? NickName { get; set; }
}
}
+82 -82
View File
@@ -1,82 +1,82 @@
using IM_API.Tools;
namespace IM_API.Dtos
{
public class BaseResponse<T>
{
//响应状态码
public int Code { get; set; }
//响应消息
public string Message { get; set; }
//响应数据
public T? Data { get; set; }
/// <summary>
/// 默认成功响应返回
/// </summary>
/// <param name="msg"></param>
/// <param name="data"></param>
public BaseResponse(string msg,T data)
{
this.Code = 0;
this.Message = msg;
this.Data = data;
}
/// <summary>
/// 默认成功响应返回仅数据
/// </summary>
/// <param name="data"></param>
public BaseResponse(T data)
{
this.Code = CodeDefine.SUCCESS.Code;
this.Message = CodeDefine.SUCCESS.Message;
this.Data = data;
}
/// <summary>
/// 默认成功响应返回,不带数据
/// </summary>
/// <param name="msg"></param>
/// <param name="data"></param>
public BaseResponse(string msg)
{
this.Code = CodeDefine.SUCCESS.Code;
this.Message = msg;
}
/// <summary>
/// 非成功响应且带数据
/// </summary>
/// <param name="code"></param>
/// <param name="message"></param>
/// <param name="data"></param>
public BaseResponse(int code, string message, T? data)
{
Code = code;
Message = message;
Data = data;
}
/// <summary>
/// 非成功响应且不带数据
/// </summary>
/// <param name="code"></param>
/// <param name="message"></param>
/// <param name="data"></param>
public BaseResponse(int code, string message)
{
Code = code;
Message = message;
}
/// <summary>
/// 接受codedefine对象
/// </summary>
/// <param name="codeDefine"></param>
public BaseResponse(CodeDefine codeDefine)
{
this.Code = codeDefine.Code;
this.Message = codeDefine.Message;
}
public BaseResponse()
{
this.Code = CodeDefine.SUCCESS.Code;
this.Message = CodeDefine.SUCCESS.Message;
}
}
}
using IM_API.Tools;
namespace IM_API.Dtos
{
public class BaseResponse<T>
{
//响应状态码
public int Code { get; set; }
//响应消息
public string Message { get; set; }
//响应数据
public T? Data { get; set; }
/// <summary>
/// 默认成功响应返回
/// </summary>
/// <param name="msg"></param>
/// <param name="data"></param>
public BaseResponse(string msg,T data)
{
this.Code = 0;
this.Message = msg;
this.Data = data;
}
/// <summary>
/// 默认成功响应返回仅数据
/// </summary>
/// <param name="data"></param>
public BaseResponse(T data)
{
this.Code = CodeDefine.SUCCESS.Code;
this.Message = CodeDefine.SUCCESS.Message;
this.Data = data;
}
/// <summary>
/// 默认成功响应返回,不带数据
/// </summary>
/// <param name="msg"></param>
/// <param name="data"></param>
public BaseResponse(string msg)
{
this.Code = CodeDefine.SUCCESS.Code;
this.Message = msg;
}
/// <summary>
/// 非成功响应且带数据
/// </summary>
/// <param name="code"></param>
/// <param name="message"></param>
/// <param name="data"></param>
public BaseResponse(int code, string message, T? data)
{
Code = code;
Message = message;
Data = data;
}
/// <summary>
/// 非成功响应且不带数据
/// </summary>
/// <param name="code"></param>
/// <param name="message"></param>
/// <param name="data"></param>
public BaseResponse(int code, string message)
{
Code = code;
Message = message;
}
/// <summary>
/// 接受codedefine对象
/// </summary>
/// <param name="codeDefine"></param>
public BaseResponse(CodeDefine codeDefine)
{
this.Code = codeDefine.Code;
this.Message = codeDefine.Message;
}
public BaseResponse()
{
this.Code = CodeDefine.SUCCESS.Code;
this.Message = CodeDefine.SUCCESS.Message;
}
}
}
@@ -1,26 +1,26 @@
namespace IM_API.Dtos.Conversation
{
public class ClearConversationsDto
{
public int UserId { get; set; }
/// <summary>
/// 聊天类型
/// </summary>
public MsgChatType ChatType { get; set; }
/// <summary>
/// 目标ID,聊天类型为群则为群id,私聊为用户id
/// </summary>
public int TargetId { get; set; }
}
public enum MsgChatType
{
/// <summary>
/// 私聊
/// </summary>
single = 0,
/// <summary>
/// 私聊
/// </summary>
group = 1
}
}
namespace IM_API.Dtos.Conversation
{
public class ClearConversationsDto
{
public int UserId { get; set; }
/// <summary>
/// 聊天类型
/// </summary>
public MsgChatType ChatType { get; set; }
/// <summary>
/// 目标ID,聊天类型为群则为群id,私聊为用户id
/// </summary>
public int TargetId { get; set; }
}
public enum MsgChatType
{
/// <summary>
/// 私聊
/// </summary>
single = 0,
/// <summary>
/// 私聊
/// </summary>
group = 1
}
}
@@ -1,12 +1,12 @@
namespace IM_API.Dtos.Conversation
{
public class UpdateConversationDto
{
public string StreamKey { get; set; }
public int SenderId { get; set; }
public int ReceiptId { get; set; }
public string LastMessage { get; set; }
public long LastSequenceId { get; set; }
public DateTimeOffset DateTime { get; set; }
}
}
namespace IM_API.Dtos.Conversation
{
public class UpdateConversationDto
{
public string StreamKey { get; set; }
public int SenderId { get; set; }
public int ReceiptId { get; set; }
public string LastMessage { get; set; }
public long LastSequenceId { get; set; }
public DateTimeOffset DateTime { get; set; }
}
}
+33 -33
View File
@@ -1,33 +1,33 @@
using IM_API.Dtos.User;
using IM_API.Models;
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Friend
{
public record FriendInfoDto
{
public int Id { get; init; }
public int UserId { get; init; }
public int FriendId { get; init; }
public FriendStatus StatusEnum { get; init; }
public DateTimeOffset Created { get; init; }
public string RemarkName { get; init; } = string.Empty;
public string? Avatar { get; init; }
public UserInfoDto UserInfo { get; init; }
}
public record FriendRequestHandleDto
{
[Required(ErrorMessage = "操作必填")]
public HandleFriendRequestAction Action { get; init; }
[StringLength(20, ErrorMessage = "备注名最大20个字符")]
public string? RemarkName { get; init; }
}
}
using IM_API.Dtos.User;
using IM_API.Models;
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Friend
{
public record FriendInfoDto
{
public int Id { get; init; }
public int UserId { get; init; }
public int FriendId { get; init; }
public FriendStatus StatusEnum { get; init; }
public DateTimeOffset Created { get; init; }
public string RemarkName { get; init; } = string.Empty;
public string? Avatar { get; init; }
public UserInfoDto UserInfo { get; init; }
}
public record FriendRequestHandleDto
{
[Required(ErrorMessage = "操作必填")]
public HandleFriendRequestAction Action { get; init; }
[StringLength(20, ErrorMessage = "备注名最大20个字符")]
public string? RemarkName { get; init; }
}
}
+15 -15
View File
@@ -1,15 +1,15 @@
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Friend
{
public class FriendRequestDto
{
public int? FromUserId { get; set; }
public int ToUserId { get; set; }
[Required(ErrorMessage = "备注名必填")]
[StringLength(20, ErrorMessage = "备注名不能超过20位字符")]
public string? RemarkName { get; set; }
[StringLength(50, ErrorMessage = "描述不能超过50字符")]
public string? Description { get; set; }
}
}
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Friend
{
public class FriendRequestDto
{
public int? FromUserId { get; set; }
public int ToUserId { get; set; }
[Required(ErrorMessage = "备注名必填")]
[StringLength(20, ErrorMessage = "备注名不能超过20位字符")]
public string? RemarkName { get; set; }
[StringLength(50, ErrorMessage = "描述不能超过50字符")]
public string? Description { get; set; }
}
}
@@ -1,36 +1,36 @@
using IM_API.Models;
namespace IM_API.Dtos.Friend
{
public class FriendRequestResDto
{
public int Id { get; set; }
/// <summary>
/// 申请人
/// </summary>
public int RequestUser { get; set; }
/// <summary>
/// 被申请人
/// </summary>
public int ResponseUser { get; set; }
public string Avatar { get; set; }
public string NickName { get; set; }
/// <summary>
/// 申请时间
/// </summary>
public DateTimeOffset Created { get; set; }
/// <summary>
/// 申请附言
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 申请状态(0:待通过,1:拒绝,2:同意,3:拉黑)
/// </summary>
public FriendRequestState State { get; set; }
}
}
using IM_API.Models;
namespace IM_API.Dtos.Friend
{
public class FriendRequestResDto
{
public int Id { get; set; }
/// <summary>
/// 申请人
/// </summary>
public int RequestUser { get; set; }
/// <summary>
/// 被申请人
/// </summary>
public int ResponseUser { get; set; }
public string Avatar { get; set; }
public string NickName { get; set; }
/// <summary>
/// 申请时间
/// </summary>
public DateTimeOffset Created { get; set; }
/// <summary>
/// 申请附言
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 申请状态(0:待通过,1:拒绝,2:同意,3:拉黑)
/// </summary>
public FriendRequestState State { get; set; }
}
}
@@ -1,29 +1,29 @@
namespace IM_API.Dtos.Friend
{
public class HandleFriendRequestDto
{
/// <summary>
/// 好友请求Id
/// </summary>
public int RequestId { get; set; }
/// <summary>
/// 处理操作
/// </summary>
public HandleFriendRequestAction Action { get; set; }
/// <summary>
/// 好友备注名
/// </summary>
public string? RemarkName { get; set; }
}
public enum HandleFriendRequestAction
{
/// <summary>
/// 同意
/// </summary>
Accept = 0,
/// <summary>
/// 拒绝
/// </summary>
Reject = 1
}
}
namespace IM_API.Dtos.Friend
{
public class HandleFriendRequestDto
{
/// <summary>
/// 好友请求Id
/// </summary>
public int RequestId { get; set; }
/// <summary>
/// 处理操作
/// </summary>
public HandleFriendRequestAction Action { get; set; }
/// <summary>
/// 好友备注名
/// </summary>
public string? RemarkName { get; set; }
}
public enum HandleFriendRequestAction
{
/// <summary>
/// 同意
/// </summary>
Accept = 0,
/// <summary>
/// 拒绝
/// </summary>
Reject = 1
}
}
+22 -22
View File
@@ -1,22 +1,22 @@
using IM_API.Models;
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Group
{
public class GroupCreateDto
{
/// <summary>
/// 群聊名称
/// </summary>
[Required(ErrorMessage = "群名称必填")]
[MaxLength(20, ErrorMessage = "群名称不能大于20字符")]
public string Name { get; set; } = null!;
/// <summary>
/// 群头像
/// </summary>
[Required(ErrorMessage = "群头像必填")]
public string Avatar { get; set; } = null!;
public List<int>? UserIDs { get; set; }
}
}
using IM_API.Models;
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Group
{
public class GroupCreateDto
{
/// <summary>
/// 群聊名称
/// </summary>
[Required(ErrorMessage = "群名称必填")]
[MaxLength(20, ErrorMessage = "群名称不能大于20字符")]
public string Name { get; set; } = null!;
/// <summary>
/// 群头像
/// </summary>
[Required(ErrorMessage = "群头像必填")]
public string Avatar { get; set; } = null!;
public List<int>? UserIDs { get; set; }
}
}
+51 -51
View File
@@ -1,51 +1,51 @@
using IM_API.Models;
namespace IM_API.Dtos.Group
{
public class GroupInfoDto
{
public int Id { get; set; }
/// <summary>
/// 群聊名称
/// </summary>
public string Name { get; set; } = null!;
/// <summary>
/// 群主
/// </summary>
public int GroupMaster { get; set; }
/// <summary>
/// 群权限
/// (0:需管理员同意,1:任意人可加群,2:不允许任何人加入)
/// </summary>
public GroupAuhority Auhority { get; set; }
/// <summary>
/// 全员禁言(0允许发言,2全员禁言)
/// </summary>
public GroupAllMembersBanned AllMembersBanned { get; set; }
/// <summary>
/// 群聊状态
/// (1:正常,2:封禁)
/// </summary>
public GroupStatus Status { get; set; }
/// <summary>
/// 群公告
/// </summary>
public string? Announcement { get; set; }
/// <summary>
/// 群聊创建时间
/// </summary>
public DateTimeOffset Created { get; set; }
/// <summary>
/// 群头像
/// </summary>
public string Avatar { get; set; } = null!;
}
}
using IM_API.Models;
namespace IM_API.Dtos.Group
{
public class GroupInfoDto
{
public int Id { get; set; }
/// <summary>
/// 群聊名称
/// </summary>
public string Name { get; set; } = null!;
/// <summary>
/// 群主
/// </summary>
public int GroupMaster { get; set; }
/// <summary>
/// 群权限
/// (0:需管理员同意,1:任意人可加群,2:不允许任何人加入)
/// </summary>
public GroupAuhority Auhority { get; set; }
/// <summary>
/// 全员禁言(0允许发言,2全员禁言)
/// </summary>
public GroupAllMembersBanned AllMembersBanned { get; set; }
/// <summary>
/// 群聊状态
/// (1:正常,2:封禁)
/// </summary>
public GroupStatus Status { get; set; }
/// <summary>
/// 群公告
/// </summary>
public string? Announcement { get; set; }
/// <summary>
/// 群聊创建时间
/// </summary>
public DateTimeOffset Created { get; set; }
/// <summary>
/// 群头像
/// </summary>
public string Avatar { get; set; } = null!;
}
}
@@ -1,8 +1,8 @@
namespace IM_API.Dtos.Group
{
public class GroupInviteUserDto
{
public int GroupId { get; set; }
public List<int> Ids { get; set; }
}
}
namespace IM_API.Dtos.Group
{
public class GroupInviteUserDto
{
public int GroupId { get; set; }
public List<int> Ids { get; set; }
}
}
@@ -1,11 +1,11 @@
namespace IM_API.Dtos.Group
{
public class GroupUpdateConversationDto
{
public int GroupId { get; set; }
public long MaxSequenceId { get; set; }
public string LastMessage { get; set; }
public string LastSenderName { get; set; }
public DateTimeOffset LastUpdateTime { get; set; }
}
}
namespace IM_API.Dtos.Group
{
public class GroupUpdateConversationDto
{
public int GroupId { get; set; }
public long MaxSequenceId { get; set; }
public string LastMessage { get; set; }
public string LastSenderName { get; set; }
public DateTimeOffset LastUpdateTime { get; set; }
}
}
@@ -1,10 +1,10 @@
using IM_API.Models;
namespace IM_API.Dtos.Group
{
public class HandleGroupInviteDto
{
public int InviteId { get; set; }
public GroupInviteState Action { get; set; }
}
}
using IM_API.Models;
namespace IM_API.Dtos.Group
{
public class HandleGroupInviteDto
{
public int InviteId { get; set; }
public GroupInviteState Action { get; set; }
}
}
@@ -1,10 +1,10 @@
using IM_API.Models;
namespace IM_API.Dtos.Group
{
public class HandleGroupRequestDto
{
public int RequestId { get; set; }
public GroupRequestState Action { get; set; }
}
}
using IM_API.Models;
namespace IM_API.Dtos.Group
{
public class HandleGroupRequestDto
{
public int RequestId { get; set; }
public GroupRequestState Action { get; set; }
}
}
+49 -49
View File
@@ -1,49 +1,49 @@
using IM_API.Tools;
namespace IM_API.Dtos
{
public class HubResponse<T>
{
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 enum HubResponseType
{
ChatMsg = 1, // 聊天内容
SystemNotice = 2, // 系统通知(如:申请好友成功)
ActionStatus = 3 // 状态变更(如:对方正在输入、已读回执)
}
}
using IM_API.Tools;
namespace IM_API.Dtos
{
public class HubResponse<T>
{
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 enum HubResponseType
{
ChatMsg = 1, // 聊天内容
SystemNotice = 2, // 系统通知(如:申请好友成功)
ActionStatus = 3 // 状态变更(如:对方正在输入、已读回执)
}
}
+18 -18
View File
@@ -1,18 +1,18 @@
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Message
{
public class MessageQueryDto
{
[Required(ErrorMessage = "会话ID必填")]
public int ConversationId { get; set; }
// 锚点序号(如果为空,说明是第一次进聊天框,拉最新的)
public long? Cursor { get; set; }
// 查询方向:0 - 查旧(Before), 1 - 查新(After)
public int Direction { get; set; } = 0;
public int Limit { get; set; } = 20;
}
}
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.Message
{
public class MessageQueryDto
{
[Required(ErrorMessage = "会话ID必填")]
public int ConversationId { get; set; }
// 锚点序号(如果为空,说明是第一次进聊天框,拉最新的)
public long? Cursor { get; set; }
// 查询方向:0 - 查旧(Before), 1 - 查新(After)
public int Direction { get; set; } = 0;
public int Limit { get; set; } = 20;
}
}
+17 -17
View File
@@ -1,17 +1,17 @@
using IM_API.Models;
namespace IM_API.Dtos
{
public record MessageBaseDto
{
// 使用 { get; init; } 确保对象创建后不可修改,且支持无参构造
public MessageMsgType Type { get; init; } = default!;
public ChatType ChatType { get; init; } = default!;
public Guid MsgId { get; init; }
public int SenderId { get; init; }
public int ReceiverId { get; init; }
public string Content { get; init; } = default!;
public DateTimeOffset TimeStamp { get; init; }
public MessageBaseDto() { }
}
}
using IM_API.Models;
namespace IM_API.Dtos
{
public record MessageBaseDto
{
// 使用 { get; init; } 确保对象创建后不可修改,且支持无参构造
public MessageMsgType Type { get; init; } = default!;
public ChatType ChatType { get; init; } = default!;
public Guid MsgId { get; init; }
public int SenderId { get; init; }
public int ReceiverId { get; init; }
public string Content { get; init; } = default!;
public DateTimeOffset TimeStamp { get; init; }
public MessageBaseDto() { }
}
}
+66 -66
View File
@@ -1,66 +1,66 @@
using IM_API.Tools;
namespace IM_API.Dtos
{
public class SignalRResponseDto
{
public string Type { get; set; }
public string Message { get; set; }
public int Code { get; set; }
public string Status { get; set; }
public SignalRResponseDto(SignalRResponseType type,CodeDefine codeDefine)
{
this.Type = type.ToString();
this.Code = codeDefine.Code;
this.Message = codeDefine.Message;
this.Status = codeDefine.Message;
}
public SignalRResponseDto(SignalRResponseType type)
{
this.Type = type.ToString();
this.Code = CodeDefine.SUCCESS.Code;
this.Message = CodeDefine.SUCCESS.Message;
this.Status = CodeDefine.SUCCESS.Message;
}
}
public enum SignalRResponseType
{
/// <summary>
/// 消息
/// </summary>
MESSAGE = 0,
/// <summary>
/// 鉴权
/// </summary>
AUTH = 1,
/// <summary>
/// 心跳
/// </summary>
HEARTBEAT = 2,
/// <summary>
/// 消息回执
/// </summary>
MESSAGE_ACK = 3,
/// <summary>
/// 消息撤回
/// </summary>
MESSAGE_RECALL = 4,
/// <summary>
/// 好友请求
/// </summary>
FRIEND_REQUEST = 5,
/// <summary>
/// 群邀请
/// </summary>
GROUP_INVITE = 6,
/// <summary>
/// 系统通知
/// </summary>
SYSTEM_NOTICE = 7,
/// <summary>
/// 错误
/// </summary>
ERROR = 8
}
}
using IM_API.Tools;
namespace IM_API.Dtos
{
public class SignalRResponseDto
{
public string Type { get; set; }
public string Message { get; set; }
public int Code { get; set; }
public string Status { get; set; }
public SignalRResponseDto(SignalRResponseType type,CodeDefine codeDefine)
{
this.Type = type.ToString();
this.Code = codeDefine.Code;
this.Message = codeDefine.Message;
this.Status = codeDefine.Message;
}
public SignalRResponseDto(SignalRResponseType type)
{
this.Type = type.ToString();
this.Code = CodeDefine.SUCCESS.Code;
this.Message = CodeDefine.SUCCESS.Message;
this.Status = CodeDefine.SUCCESS.Message;
}
}
public enum SignalRResponseType
{
/// <summary>
/// 消息
/// </summary>
MESSAGE = 0,
/// <summary>
/// 鉴权
/// </summary>
AUTH = 1,
/// <summary>
/// 心跳
/// </summary>
HEARTBEAT = 2,
/// <summary>
/// 消息回执
/// </summary>
MESSAGE_ACK = 3,
/// <summary>
/// 消息撤回
/// </summary>
MESSAGE_RECALL = 4,
/// <summary>
/// 好友请求
/// </summary>
FRIEND_REQUEST = 5,
/// <summary>
/// 群邀请
/// </summary>
GROUP_INVITE = 6,
/// <summary>
/// 系统通知
/// </summary>
SYSTEM_NOTICE = 7,
/// <summary>
/// 错误
/// </summary>
ERROR = 8
}
}
+8 -8
View File
@@ -1,8 +1,8 @@
namespace IM_API.Dtos
{
public class TestDto
{
public int Id { get; set; }
public string Name { get; set; }
}
}
namespace IM_API.Dtos
{
public class TestDto
{
public int Id { get; set; }
public string Name { get; set; }
}
}
+12 -12
View File
@@ -1,12 +1,12 @@
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.User
{
public class UpdateUserDto
{
[MaxLength(20, ErrorMessage = "昵称不能超过50字符")]
public string? NickName { get; set; }
public string? Avatar { get; set; }
}
}
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.User
{
public class UpdateUserDto
{
[MaxLength(20, ErrorMessage = "昵称不能超过50字符")]
public string? NickName { get; set; }
public string? Avatar { get; set; }
}
}
+21 -21
View File
@@ -1,21 +1,21 @@
using IM_API.Models;
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.User
{
public record PasswordResetDto
{
[Required(ErrorMessage = "旧密码不能为空")]
public string OldPassword { get; init; }
[Required(ErrorMessage = "新密码不能为空")]
[MaxLength(50, ErrorMessage = "密码不能超过50个字符")]
public string Password { get; init; }
}
public record OnlineStatusSetDto
{
[Required]
public UserOnlineStatus OnlineStatus { get; init; }
}
}
using IM_API.Models;
using System.ComponentModel.DataAnnotations;
namespace IM_API.Dtos.User
{
public record PasswordResetDto
{
[Required(ErrorMessage = "旧密码不能为空")]
public string OldPassword { get; init; }
[Required(ErrorMessage = "新密码不能为空")]
[MaxLength(50, ErrorMessage = "密码不能超过50个字符")]
public string Password { get; init; }
}
public record OnlineStatusSetDto
{
[Required]
public UserOnlineStatus OnlineStatus { get; init; }
}
}
+43 -43
View File
@@ -1,43 +1,43 @@
using IM_API.Models;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IM_API.Dtos.User
{
public class UserInfoDto
{
public int Id { get; set; }
/// <summary>
/// 唯一用户名
/// </summary>
public string Username { get; set; }
/// <summary>
/// 用户昵称
/// </summary>
public string NickName { get; set; }
/// <summary>
/// 用户头像
/// </summary>
public string? Avatar { get; set; }
/// <summary>
/// 用户在线状态
/// 0(默认):不在线
/// 1:在线
/// </summary>
public UserOnlineStatus OnlineStatusEnum { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTimeOffset Created { get; set; }
/// <summary>
/// 账户状态
/// (0:未激活,1:正常,2:封禁)
/// </summary>
public UserStatus StatusEnum { get; set; }
}
}
using IM_API.Models;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IM_API.Dtos.User
{
public class UserInfoDto
{
public int Id { get; set; }
/// <summary>
/// 唯一用户名
/// </summary>
public string Username { get; set; }
/// <summary>
/// 用户昵称
/// </summary>
public string NickName { get; set; }
/// <summary>
/// 用户头像
/// </summary>
public string? Avatar { get; set; }
/// <summary>
/// 用户在线状态
/// 0(默认):不在线
/// 1:在线
/// </summary>
public UserOnlineStatus OnlineStatusEnum { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTimeOffset Created { get; set; }
/// <summary>
/// 账户状态
/// (0:未激活,1:正常,2:封禁)
/// </summary>
public UserStatus StatusEnum { get; set; }
}
}