167 lines
4.3 KiB
C#
167 lines
4.3 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 用户ID
|
|
/// </summary>
|
|
[JsonProperty("user_id")]
|
|
public string UserId { get; set; } = Guid.NewGuid().ToString();
|
|
|
|
/// <summary>
|
|
/// 昵称
|
|
/// </summary>
|
|
[JsonProperty("nickname")]
|
|
public string Nickname { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 用户名
|
|
/// </summary>
|
|
[JsonProperty("username")]
|
|
public string Username { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 密码哈希
|
|
/// </summary>
|
|
[JsonProperty("password_hash")]
|
|
public string PasswordHash { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 用户权限掩码
|
|
/// </summary>
|
|
[JsonProperty("mask")]
|
|
public UserMask Mask { get; set; } = UserMask.User;
|
|
|
|
/// <summary>
|
|
/// 用户状态
|
|
/// </summary>
|
|
[JsonProperty("state")]
|
|
public UserState State { get; set; } = UserState.None;
|
|
|
|
/// <summary>
|
|
/// 创建时间
|
|
/// </summary>
|
|
[JsonProperty("create_time")]
|
|
public DateTime CreateTime { get; set; } = DateTime.Now;
|
|
|
|
/// <summary>
|
|
/// 最后登录时间
|
|
/// </summary>
|
|
[JsonProperty("last_login_time")]
|
|
public DateTime LastLoginTime { get; set; }
|
|
|
|
/// <summary>
|
|
/// 最后登录IP
|
|
/// </summary>
|
|
[JsonProperty("last_login_ip")]
|
|
public string LastLoginIP { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 电子邮箱
|
|
/// </summary>
|
|
[JsonProperty("email")]
|
|
public string Email { get; set; } = string.Empty;
|
|
}
|
|
|
|
public class UserEvent
|
|
{
|
|
/// <summary>
|
|
/// 事件ID
|
|
/// </summary>
|
|
[JsonProperty("event_id")]
|
|
public string EventId { get; set; } = Guid.NewGuid().ToString();
|
|
|
|
/// <summary>
|
|
/// 用户ID
|
|
/// </summary>
|
|
[JsonProperty("user_id")]
|
|
public string UserId { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 事件类型
|
|
/// </summary>
|
|
[JsonProperty("event_type")]
|
|
public UserEventType EventType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 事件时间
|
|
/// </summary>
|
|
[JsonProperty("event_time")]
|
|
public DateTime EventTime { get; set; } = DateTime.Now;
|
|
|
|
/// <summary>
|
|
/// 事件IP
|
|
/// </summary>
|
|
[JsonProperty("event_ip")]
|
|
public string EventIP { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 事件详情
|
|
/// </summary>
|
|
[JsonProperty("event_detail")]
|
|
public string EventDetail { get; set; } = string.Empty;
|
|
}
|
|
|
|
public class UserEventDetail : UserEvent
|
|
{
|
|
/// <summary>
|
|
/// 用户名
|
|
/// </summary>
|
|
[JsonProperty("username")]
|
|
public string Username { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 昵称
|
|
/// </summary>
|
|
[JsonProperty("nickname")]
|
|
public string Nickname { get; set; } = string.Empty;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 注册请求数据结构
|
|
/// </summary>
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 登录请求数据结构
|
|
/// </summary>
|
|
public class LoginRequest
|
|
{
|
|
/// <summary>
|
|
/// 用户名或邮箱
|
|
/// </summary>
|
|
public string Username { get; set; } = string.Empty;
|
|
public string Account { get; set; } = string.Empty;
|
|
public string Password { get; set; } = string.Empty;
|
|
}
|
|
}
|