This commit is contained in:
2024-10-13 17:04:47 +08:00
commit 2183073421
96 changed files with 7949 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
using LMS.Tools.Extensions;
namespace LMS.Repository.Models.DB
{
public class ApiEndpoints
{
public string Id { get; set; }
public string HttpMethod { get; set; }
public string Path { get; set; }
public DateTime CreateTime { get; set; } = BeijingTimeExtension.GetBeijingTime();
public List<string> RequiredPermissionIds { get; set; }
public long CreatedId { get; set; }
public long UpdatedId { get; set; }
}
}
+62
View File
@@ -0,0 +1,62 @@
using static LMS.Common.Enums.MachineEnum;
namespace LMS.Repository.Models.DB
{
public class Machine
{
/// <summary>
/// ID 主键
/// </summary>
public string Id { get; set; }
/// <summary>
/// 机器ID
/// </summary>
public string MachineId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 停用时间
/// </summary>
public DateTime? DeactivationTime { get; set; }
/// <summary>
/// 状态(是否可用)
/// </summary>
public MachineStatus Status { get; set; }
/// <summary>
/// 创建者ID
/// </summary>
public long CreateId { get; set; }
/// <summary>
/// 更新者ID
/// </summary>
public long UpdateId { get; set; }
/// <summary>
/// 使用状态(试用,永久)
/// </summary>
public MachineUseStatus UseStatus { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? Remark { get; set; }
/// <summary>
/// 所属用户ID
/// </summary>
public required long UserID { get; set; }
}
}
+82
View File
@@ -0,0 +1,82 @@
using LMS.Common.Enums;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json;
using static LMS.Common.Enums.PermissionEnum;
namespace LMS.Repository.Models.DB
{
/// <summary>
/// 所有的权限集合
/// </summary>
public class Permission
{
/// <summary>
/// 权限的ID
/// </summary>
public string Id { get; set; }
/// <summary>
/// 用户的ID
/// </summary>
public long? UserId { get; set; }
/// <summary>
/// 机器码的ID(是ID,不是机器码)
/// </summary>
public string? MachineId { get; set; }
/// <summary>
/// 角色ID
/// </summary>
public long? RoleId { get; set; }
/// <summary>
/// 权限类型的ID(子权限)
/// </summary>
[Column(TypeName = "json")]
public string PermissionTypeIds { get; set; }
/// <summary>
/// 权限对应的Code
/// </summary>
public string PermissionCode { get; set; }
/// <summary>
/// 权限类型
/// </summary>
public PType Type { get; set; }
/// <summary>
/// 创建人ID
/// </summary>
public long CreateUserId { get; set; }
/// <summary>
/// 更新人ID
/// </summary>
public long UpdateUserId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
[NotMapped]
public List<string> PermissionTypeIdsJson
{
get => JsonSerializer.Deserialize<List<string>>(PermissionTypeIds) ?? [];
set => PermissionTypeIds = JsonSerializer.Serialize(value);
}
}
}
+56
View File
@@ -0,0 +1,56 @@
using LMS.Common.Enums;
using static LMS.Common.Enums.PermissionEnum;
namespace LMS.Repository.Models.DB
{
/// <summary>
/// 存放权限的表
/// </summary>
public class PermissionType
{
/// <summary>
/// 权限ID
/// </summary>
public string Id { get; set; }
/// <summary>
/// 权限的名字
/// </summary>
public string Name { get; set; }
/// <summary>
/// 表示权限的代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 权限的分类(user和machine
/// </summary>
public PermissionEnum.PermissionType Type { get; set; }
/// <summary>
/// 创建者ID
/// </summary>
public long CreateUserId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 更新者ID
/// </summary>
public long UpdateUserId { get; set; }
/// <summary>
/// 更新权限的时间
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 权限的描述
/// </summary>
public string? Remark { get; set; }
}
}
+71
View File
@@ -0,0 +1,71 @@
namespace LMS.Repository.Models.DB
{
public class Prompt
{
/// <summary>
/// ID
/// </summary>
public string Id { get; set; }
/// <summary>
/// 提示词预设的名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 提示词的类型ID
/// </summary>
public string PromptTypeId { get; set; }
/// <summary>
/// 提示词的类型编码
/// </summary>
public string PromptTypeCode { get; set; }
/// <summary>
/// 提示词预设字符串
/// </summary>
public string PromptString { get; set; }
/// <summary>
/// 当前版本
/// </summary>
public int Version { get; set; }
/// <summary>
/// 状态
/// </summary>
public string Status { get; set; }
/// <summary>
/// 提示词的描述
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 创建者
/// </summary>
public string CreateUserId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 更新者
/// </summary>
public string UpdateUserId { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? Remark { get; set; }
}
}
+61
View File
@@ -0,0 +1,61 @@
namespace LMS.Repository.Models.DB
{
/// <summary>
/// 提示词类型的库
/// </summary>
public class PromptType
{
/// <summary>
/// ID
/// </summary>
public string Id { get; set; }
/// <summary>
/// 提示词类型编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 提示词类型名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 提示词类型描述
/// </summary>
public string? Remark { get; set; }
/// <summary>
/// 提示词类型状态
/// </summary>
public string Status { get; set; }
/// <summary>
/// 是否删除
/// </summary>
public bool IsDeleted { get; set; }
/// <summary>
/// 创建用户ID
/// </summary>
public string CreateUserId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 更新者ID
/// </summary>
public string UpdateUserId { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
}
}
+46
View File
@@ -0,0 +1,46 @@
namespace LMS.Repository.Models.DB
{
public class RefreshTokens
{
/// <summary>
/// 主键 ID
/// </summary>
public required string Id { get; set; }
/// <summary>
/// 用户ID
/// </summary>
public required long UserId { get; set; }
/// <summary>
/// Token
/// </summary>
public required string Token { get; set; }
/// <summary>
/// 到期时间
/// </summary>
public DateTime Expiration { get; set; }
/// <summary>
/// 是不是失效
/// </summary>
public Boolean Revoked { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedTime { get; set; }
/// <summary>
/// 上次校验IP
/// </summary>
public required string LastCheckIp { get; set; }
/// <summary>
/// 设备信息,浏览器信息等
/// </summary>
public required string DeviceInfo { get; set; }
}
}
+18
View File
@@ -0,0 +1,18 @@
using LMS.Tools.Extensions;
using Microsoft.AspNetCore.Identity;
namespace LMS.Repository.Models.DB
{
public class Role : IdentityRole<long>
{
public long CreatedUserId { get; set; }
public long UpdatedUserId { get; set; }
public DateTime CreatedTime { get; set; }
public DateTime UpdatedTime { get; set; }
public string? Remark { get; set; } = string.Empty;
}
}
+57
View File
@@ -0,0 +1,57 @@
using LMS.Tools.Extensions;
namespace LMS.Repository.DB
{
public class RsaKeys
{
/// <summary>
/// ID 主键
/// </summary>
public required string Id { get; set; }
/// <summary>
/// 使用次数
/// </summary>
public int UseCount { get; set; }
/// <summary>
/// 公钥
/// </summary>
public required string PublicKey { get; set; }
/// <summary>
/// 加密后的私钥
/// </summary>
public required string EncryptedPrivateKey { get; set; }
/// <summary>
/// 加密私钥的随机字符串
/// </summary>
public required string EncryptionKey { get; set; } // 加密私钥的随机字符串
/// <summary>
/// 加密私钥的随机IV
/// </summary>
public required string EncryptionIV { get; set; } // 加密私钥的随机字符串
/// <summary>
/// Key的版本
/// </summary>
public int KeyVersion { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedTime { get; set; } = BeijingTimeExtension.GetBeijingTime();
/// <summary>
/// 上次使用的时间
/// </summary>
public DateTime? LastUsed { get; set; }
/// <summary>
/// 到期时间
/// </summary>
public DateTime ExpirationTime { get; set; }
}
}
+69
View File
@@ -0,0 +1,69 @@
using LMS.Repository.User;
using Microsoft.AspNetCore.Identity;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json;
namespace LMS.Repository.Models.DB
{
public class User : IdentityUser<long>
{
[MaxLength(50)]
public string NickName { get; set; }
/// <summary>
/// 允许使用的机器码数量
/// </summary>
public long AllDeviceCount { get; set; } = 1;
/// <summary>
/// 代理分成比例
/// </summary>
public double AgentPercent { get; set; } = 0.00;
/// <summary>
/// 免费修改机器码次数
/// </summary>
public long FreeCount { get; set; } = 0;
/// <summary>
/// 用户的一些简单的操作
/// </summary>
[Column(TypeName = "json")]
public string? Options { get; set; } = "{}";
[Column(TypeName = "datetime")]
public DateTime CreatedDate { get; set; } = DateTime.Now;
[Column(TypeName = "datetime")]
public DateTime UpdatedDate { get; set; } = DateTime.Now;
[Column(TypeName = "datetime")]
public DateTime LastLoginDate { get; set; } = DateTime.Now;
public string? LastLoginIp { get; set; } = "";
public string? LastLoginDevice { get; set; } = "";
/// <summary>
/// 上级ID
/// </summary>
public long? ParentId { get; set; }
/// <summary>
/// 推广码
/// </summary>
public string AffiliateCode { get; set; } = string.Empty;
/// <summary>
/// 实际使用的Options
/// </summary>
[NotMapped]
public UserPrivateOptions OptionsJson
{
get => JsonSerializer.Deserialize<UserPrivateOptions>(Options ?? "{}") ?? new UserPrivateOptions();
set => Options = JsonSerializer.Serialize(value);
}
}
}
+11
View File
@@ -0,0 +1,11 @@
namespace LMS.Repository.Models.DB
{
public class UserRoles
{
public required string RoleId { get; set; }
public required string UserId { get; set; }
}
}