You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.6 KiB
C#

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<string> 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<string> Permissions { get; set; }
public List<int> 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<string> Permissions { get; set; }
public List<int> AssignedDevices { get; set; }
}
}