添加项目文件。

This commit is contained in:
heiye111
2026-05-19 21:55:48 +08:00
parent 4dfb6cd5ae
commit b3e57cd13c
24 changed files with 3074 additions and 0 deletions

15
Models/ResultResponse.cs Normal file
View File

@@ -0,0 +1,15 @@
using MessagePack;
namespace WebAppServer1.Models
{
[MessagePackObject]
public class SearchFriendsResultResponse
{
[Key("success")]
public bool success { get; set; }
[Key("username")]
public string username { get; set; }
[Key("userid")]
public int userid { get; set; }
};
}

13
Models/Tokens.cs Normal file
View File

@@ -0,0 +1,13 @@
namespace WebAppServer1.Models
{
public class Tokens
{
public int Id { get; set; }
public required string RefreshToken { get; set; }
public int UserId { get; set; }
public required string UserName { get; set; }
public DateTime IssuedAt { get; set; }
public DateTime ExpiresAt { get; set; }
public bool IsRevoked { get; set; }
}
}

174
Models/Users.cs Normal file
View File

@@ -0,0 +1,174 @@
using MessagePack;
namespace WebAppServer1.Models
{
// 用户表
public class User
{
public int Id { get; set; }
public string Username { get; set; } = string.Empty;
public string Nickname { get; set; } = string.Empty; // 可修改,不唯一
public string Email { get; set; } = string.Empty;
public string PasswordHash { get; set; } = string.Empty;
public string AvatarUrl { get; set; } = string.Empty;
public string Signature { get; set; } = string.Empty;
public DateTime LastActive { get; set; }
public DateTime CreatedAt { get; set; }
public bool IsOnline { get; set; }
public ICollection<Friend> Friends { get; set; } = new List<Friend>();
public ICollection<Message> Messages { get; set; } = new List<Message>();
}
// 好友关系表
public class Friend
{
public int Id { get; set; }
public int UserId { get; set; }
public int FriendId { get; set; }
public FriendStatus Status { get; set; }
public DateTime CreatedAt { get; set; }
public User User { get; set; }
public User FriendUser { get; set; }
}
public enum FriendStatus
{
Pending,
Accepted,
Blocked
}
// 群聊表
public class Group
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public int OwnerId { get; set; }
public string AvatarUrl { get; set; } = string.Empty;
public DateTime CreatedAt { get; set; }
public User Owner { get; set; }
public ICollection<GroupMember> Members { get; set; } = new List<GroupMember>();
}
// 群成员表
public class GroupMember
{
public int Id { get; set; }
public int GroupId { get; set; }
public int UserId { get; set; }
public GroupRole Role { get; set; }
public DateTime JoinedAt { get; set; }
public Group Group { get; set; }
public User User { get; set; }
}
public enum GroupRole
{
Member,
Admin,
Owner
}
// 消息表
public class Message
{
public int Id { get; set; }
public int SenderId { get; set; }
public int? ReceiverId { get; set; } // 私聊
public int? GroupId { get; set; } // 群聊
public string Content { get; set; } = string.Empty;
public MessageType MessageType { get; set; }
public DateTime CreatedAt { get; set; }
public bool IsRead { get; set; }
public bool IsDeleted { get; set; }
public User Sender { get; set; }
public User Receiver { get; set; }
public Group Group { get; set; }
}
public enum MessageType
{
Text,
Image,
File,
Video,
Voice
}
// 通知表
public class Notification
{
public int Id { get; set; }
public int UserId { get; set; }
public NotificationType Type { get; set; }
public string Content { get; set; } = string.Empty;
public bool IsRead { get; set; }
public DateTime CreatedAt { get; set; }
public User User { get; set; }
}
public enum NotificationType
{
FriendRequest,
Message,
System
}
// 文件表
public class FileEntity
{
public int Id { get; set; }
public int UploaderId { get; set; }
public int MessageId { get; set; }
public string FileUrl { get; set; } = string.Empty;
public FileType FileType { get; set; }
public int Size { get; set; }
public DateTime UploadedAt { get; set; }
public User Uploader { get; set; }
public Message Message { get; set; }
}
public enum FileType
{
Image,
Video,
Document,
Audio
}
public class UserProfileHistory
{
public int Id { get; set; }
public int UserId { get; set; }
public string FieldName { get; set; } = string.Empty;
public string OldValue { get; set; } = string.Empty;
public string NewValue { get; set; } = string.Empty;
public DateTime ChangedAt { get; set; }
public string ChangedBy { get; set; } = string.Empty;
public User User { get; set; }
}
public class LoginRecord
{
public int Id { get; set; }
public int UserId { get; set; }
public DateTime LoginTime { get; set; }
public string IpAddress { get; set; } = string.Empty;
public string DeviceInfo { get; set; } = string.Empty;
public bool IsSuccess { get; set; }
public User User { get; set; }
}
}