using Newtonsoft.Json; namespace iFileProxy.Models { public enum UserMask { Guest = -1, // 访客 User = 0, Admin = 1, SuperAdmin = 2, // 超级管理员 } public enum UserState { None = 0, Blocked = 1 } public enum UserEventType { Login = 0, Logout = 1, Registry = 2, UpdateMask = 3, // 添加权限修改事件类型 UpdatePassword = 4, // 添加密码修改事件类型 UpdateNickname = 5, // 添加昵称修改事件类型 } public class User { /// /// 用户ID /// [JsonProperty("user_id")] public string UserId { get; set; } = Guid.NewGuid().ToString(); /// /// 昵称 /// [JsonProperty("nickname")] public string Nickname { get; set; } = string.Empty; /// /// 用户名 /// [JsonProperty("username")] public string Username { get; set; } = string.Empty; /// /// 密码哈希 /// [JsonProperty("password_hash")] public string PasswordHash { get; set; } = string.Empty; /// /// 用户权限掩码 /// [JsonProperty("mask")] public UserMask Mask { get; set; } = UserMask.User; /// /// 用户状态 /// [JsonProperty("state")] public UserState State { get; set; } = UserState.None; /// /// 创建时间 /// [JsonProperty("create_time")] public DateTime CreateTime { get; set; } = DateTime.Now; /// /// 最后登录时间 /// [JsonProperty("last_login_time")] public DateTime LastLoginTime { get; set; } /// /// 最后登录IP /// [JsonProperty("last_login_ip")] public string LastLoginIP { get; set; } = string.Empty; /// /// 电子邮箱 /// [JsonProperty("email")] public string Email { get; set; } = string.Empty; } public class UserEvent { /// /// 事件ID /// [JsonProperty("event_id")] public string EventId { get; set; } = Guid.NewGuid().ToString(); /// /// 用户ID /// [JsonProperty("user_id")] public string UserId { get; set; } = string.Empty; /// /// 事件类型 /// [JsonProperty("event_type")] public UserEventType EventType { get; set; } /// /// 事件时间 /// [JsonProperty("event_time")] public DateTime EventTime { get; set; } = DateTime.Now; /// /// 事件IP /// [JsonProperty("event_ip")] public string EventIP { get; set; } = string.Empty; /// /// 事件详情 /// [JsonProperty("event_detail")] public string EventDetail { get; set; } = string.Empty; } public class UserEventDetail : UserEvent { /// /// 用户名 /// [JsonProperty("username")] public string Username { get; set; } = string.Empty; /// /// 昵称 /// [JsonProperty("nickname")] public string Nickname { get; set; } = string.Empty; } /// /// 注册请求数据结构 /// public class RegisterRequest { public string Username { get; set; } = string.Empty; public string Password { get; set; } = string.Empty; public string NickName { get; set; } = string.Empty; public string Email { get; set; } = string.Empty; } /// /// 登录请求数据结构 /// public class LoginRequest { /// /// 用户名或邮箱 /// public string Username { get; set; } = string.Empty; public string Account { get; set; } = string.Empty; public string Password { get; set; } = string.Empty; } }