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;
}
}