using System; using System.Collections.Generic; using System.Security.Claims; namespace Haoliang.Models.User { public class UserSession { public int Id { get; set; } public int UserId { get; set; } public string SessionToken { get; set; } public string DeviceInfo { get; set; } public string IPAddress { get; set; } public DateTime LoginTime { get; set; } public DateTime? LastActivityTime { get; set; } public DateTime? LogoutTime { get; set; } public bool IsActive { get; set; } public DateTime CreatedAt { get; set; } } public class Permission { public int Id { get; set; } public string Name { get; set; } public string Description { get; set; } public string Category { get; set; } // System, Device, Production, Template, User public string Module { get; set; } public string Action { get; set; } public string Resource { get; set; } public bool IsEnabled { get; set; } public DateTime CreatedAt { get; set; } public DateTime UpdatedAt { get; set; } } public class UserPermission { public int Id { get; set; } public int UserId { get; set; } public int PermissionId { get; set; } public User User { get; set; } public Permission Permission { get; set; } public DateTime CreatedAt { get; set; } } public class RolePermission { public int Id { get; set; } public int RoleId { get; set; } public int PermissionId { get; set; } public Role Role { get; set; } public Permission Permission { get; set; } public DateTime CreatedAt { get; set; } } public class JwtToken { public string AccessToken { get; set; } public string RefreshToken { get; set; } public DateTime ExpiresAt { get; set; } public DateTime RefreshExpiresAt { get; set; } public string TokenType { get; set; } } public class AuthResult { public bool Success { get; set; } public string Token { get; set; } public User User { get; set; } public List Permissions { get; set; } public string Message { get; set; } public DateTime ExpiresAt { get; set; } } public class UserClaims { public int UserId { get; set; } public string Username { get; set; } public string RealName { get; set; } public int RoleId { get; set; } public string RoleName { get; set; } public List Permissions { get; set; } public List DeviceIds { get; set; } public DateTime SessionTime { get; set; } } public class PasswordReset { public int Id { get; set; } public int UserId { get; set; } public string Token { get; set; } public bool IsUsed { get; set; } public DateTime ExpiresAt { get; set; } public DateTime? UsedAt { get; set; } public DateTime CreatedAt { get; set; } } public class UserViewModel { public int Id { get; set; } public string Username { get; set; } public string RealName { get; set; } public string Email { get; set; } public string Phone { get; set; } public string RoleName { get; set; } public bool IsActive { get; set; } public DateTime? LastLoginTime { get; set; } public DateTime CreatedAt { get; set; } public List Permissions { get; set; } public List AssignedDevices { get; set; } } }