添加项目文件。
This commit is contained in:
174
Models/Users.cs
Normal file
174
Models/Users.cs
Normal 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; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user