wip: 🧠 初步的框架

This commit is contained in:
tk
2023-08-25 15:33:42 +08:00
parent 57c1ba2002
commit 18b4d7547a
1014 changed files with 122380 additions and 2 deletions

View File

@ -0,0 +1,6 @@
namespace NetAdmin.Domain.DbMaps.Dependency;
/// <summary>
/// 数据库实体基类
/// </summary>
public abstract record EntityBase : DataAbstraction;

View File

@ -0,0 +1,22 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 创建者客户端字段接口
/// </summary>
public interface IFieldCreatedClient
{
/// <summary>
/// 创建者客户端IP
/// </summary>
int? CreatedClientIp { get; init; }
/// <summary>
/// 创建者来源地址
/// </summary>
string CreatedReferer { get; init; }
/// <summary>
/// 创建者客户端用户代理
/// </summary>
string CreatedUserAgent { get; init; }
}

View File

@ -0,0 +1,12 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 创建时间字段接口
/// </summary>
public interface IFieldCreatedTime
{
/// <summary>
/// 创建时间
/// </summary>
DateTime CreatedTime { get; init; }
}

View File

@ -0,0 +1,17 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 创建用户字段接口
/// </summary>
public interface IFieldCreatedUser
{
/// <summary>
/// 创建者编号
/// </summary>
long? CreatedUserId { get; init; }
/// <summary>
/// 创建者用户名
/// </summary>
string CreatedUserName { get; set; }
}

View File

@ -0,0 +1,12 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 启用字段接口
/// </summary>
public interface IFieldEnabled
{
/// <summary>
/// 是否启用
/// </summary>
bool Enabled { get; init; }
}

View File

@ -0,0 +1,17 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 修改客户端字段接口
/// </summary>
public interface IFieldModifiedClient
{
/// <summary>
/// 客户端IP
/// </summary>
int ModifiedClientIp { get; init; }
/// <summary>
/// 客户端用户代理
/// </summary>
string ModifiedUserAgent { get; init; }
}

View File

@ -0,0 +1,12 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 修改时间字段接口
/// </summary>
public interface IFieldModifiedTime
{
/// <summary>
/// 修改时间
/// </summary>
DateTime? ModifiedTime { get; init; }
}

View File

@ -0,0 +1,17 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 更新用户字段接口
/// </summary>
public interface IFieldModifiedUser
{
/// <summary>
/// 修改者编号
/// </summary>
long? ModifiedUserId { get; init; }
/// <summary>
/// 修改者用户名
/// </summary>
string ModifiedUserName { get; init; }
}

View File

@ -0,0 +1,17 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 拥有者字段接口
/// </summary>
public interface IFieldOwner
{
/// <summary>
/// 拥有者部门编号
/// </summary>
long? OwnerDeptId { get; init; }
/// <summary>
/// 拥有者用户编号
/// </summary>
long? OwnerId { get; init; }
}

View File

@ -0,0 +1,12 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 主键字段接口
/// </summary>
public interface IFieldPrimary<T>
{
/// <summary>
/// 唯一编码
/// </summary>
T Id { get; init; }
}

View File

@ -0,0 +1,12 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 排序字段接口
/// </summary>
public interface IFieldSort
{
/// <summary>
/// 排序值,越大越前
/// </summary>
long Sort { get; init; }
}

View File

@ -0,0 +1,12 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 描述字段接口
/// </summary>
public interface IFieldSummary
{
/// <summary>
/// 描述
/// </summary>
string Summary { get; init; }
}

View File

@ -0,0 +1,12 @@
namespace NetAdmin.Domain.DbMaps.Dependency.Fields;
/// <summary>
/// 版本字段接口
/// </summary>
public interface IFieldVersion
{
/// <summary>
/// 数据版本
/// </summary>
long Version { get; init; }
}

View File

@ -0,0 +1,44 @@
using NetAdmin.Domain.Attributes;
using NetAdmin.Domain.DbMaps.Dependency.Fields;
namespace NetAdmin.Domain.DbMaps.Dependency;
/// <summary>
/// 不可变实体
/// </summary>
public abstract record ImmutableEntity : ImmutableEntity<long>
{
/// <summary>
/// 唯一编码
/// </summary>
[Snowflake]
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public override long Id { get; init; }
}
/// <summary>
/// 不可变实体
/// </summary>
/// <typeparam name="T"></typeparam>
public abstract record ImmutableEntity<T> : LiteImmutableEntity<T>, IFieldCreatedUser
{
/// <summary>
/// 创建者编号
/// </summary>
[JsonIgnore]
[Column(CanUpdate = false, Position = -1)]
public long? CreatedUserId { get; init; }
/// <summary>
/// 创建者用户名
/// </summary>
[JsonIgnore]
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31, CanUpdate = false, Position = -1)]
public virtual string CreatedUserName { get; set; }
/// <summary>
/// 唯一编码
/// </summary>
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public override T Id { get; init; }
}

View File

@ -0,0 +1,38 @@
using NetAdmin.Domain.Attributes;
using NetAdmin.Domain.DbMaps.Dependency.Fields;
namespace NetAdmin.Domain.DbMaps.Dependency;
/// <summary>
/// 轻型不可变实体
/// </summary>
public abstract record LiteImmutableEntity : LiteImmutableEntity<long>
{
/// <summary>
/// 唯一编码
/// </summary>
[Snowflake]
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public override long Id { get; init; }
}
/// <summary>
/// 轻型不可变实体
/// </summary>
/// <typeparam name="T"></typeparam>
public abstract record LiteImmutableEntity<T> : EntityBase, IFieldPrimary<T>, IFieldCreatedTime
{
/// <summary>
/// 创建时间
/// </summary>
[JsonIgnore]
[Column(ServerTime = DateTimeKind.Utc, CanUpdate = false, Position = -1)]
public virtual DateTime CreatedTime { get; init; }
/// <summary>
/// 唯一编码
/// </summary>
[JsonIgnore]
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public virtual T Id { get; init; }
}

View File

@ -0,0 +1,36 @@
using NetAdmin.Domain.Attributes;
using NetAdmin.Domain.DbMaps.Dependency.Fields;
namespace NetAdmin.Domain.DbMaps.Dependency;
/// <summary>
/// 轻型可变实体
/// </summary>
public abstract record LiteMutableEntity : LiteMutableEntity<long>
{
/// <summary>
/// 唯一编码
/// </summary>
[Snowflake]
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public override long Id { get; init; }
}
/// <summary>
/// 轻型可变实体
/// </summary>
public abstract record LiteMutableEntity<T> : LiteImmutableEntity<T>, IFieldModifiedTime
{
/// <summary>
/// 唯一编码
/// </summary>
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public override T Id { get; init; }
/// <summary>
/// 修改时间
/// </summary>
[JsonIgnore]
[Column(ServerTime = DateTimeKind.Utc, CanInsert = false, Position = -1)]
public virtual DateTime? ModifiedTime { get; init; }
}

View File

@ -0,0 +1,36 @@
using NetAdmin.Domain.Attributes;
using NetAdmin.Domain.DbMaps.Dependency.Fields;
namespace NetAdmin.Domain.DbMaps.Dependency;
/// <summary>
/// 乐观锁轻型可变实体
/// </summary>
public abstract record LiteVersionEntity : LiteVersionEntity<long>
{
/// <summary>
/// 唯一编码
/// </summary>
[Snowflake]
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public override long Id { get; init; }
}
/// <summary>
/// 乐观锁轻型可变实体
/// </summary>
public abstract record LiteVersionEntity<T> : LiteMutableEntity<T>, IFieldVersion
{
/// <summary>
/// 唯一编码
/// </summary>
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public override T Id { get; init; }
/// <summary>
/// 数据版本
/// </summary>
[JsonIgnore]
[Column(IsVersion = true, Position = -1)]
public virtual long Version { get; init; }
}

View File

@ -0,0 +1,43 @@
using NetAdmin.Domain.Attributes;
using NetAdmin.Domain.DbMaps.Dependency.Fields;
namespace NetAdmin.Domain.DbMaps.Dependency;
/// <summary>
/// 可变实体
/// </summary>
public abstract record MutableEntity : MutableEntity<long>
{
/// <summary>
/// 唯一编码
/// </summary>
[Snowflake]
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public override long Id { get; init; }
}
/// <summary>
/// 可变实体
/// </summary>
public abstract record MutableEntity<T> : LiteMutableEntity<T>, IFieldModifiedUser
{
/// <summary>
/// 唯一编码
/// </summary>
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public override T Id { get; init; }
/// <summary>
/// 修改者编号
/// </summary>
[JsonIgnore]
[Column(CanInsert = false, Position = -1)]
public long? ModifiedUserId { get; init; }
/// <summary>
/// 修改者用户名
/// </summary>
[JsonIgnore]
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31, CanInsert = false, Position = -1)]
public string ModifiedUserName { get; init; }
}

View File

@ -0,0 +1,6 @@
namespace NetAdmin.Domain.DbMaps.Dependency;
/// <summary>
/// 简单实体
/// </summary>
public abstract record SimpleEntity : EntityBase;

View File

@ -0,0 +1,43 @@
using NetAdmin.Domain.Attributes;
using NetAdmin.Domain.DbMaps.Dependency.Fields;
namespace NetAdmin.Domain.DbMaps.Dependency;
/// <summary>
/// 乐观锁可变实体
/// </summary>
public abstract record VersionEntity : VersionEntity<long>
{
/// <summary>
/// 唯一编码
/// </summary>
[Snowflake]
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public override long Id { get; init; }
}
/// <summary>
/// 乐观锁可变实体
/// </summary>
public abstract record VersionEntity<T> : LiteVersionEntity<T>, IFieldModifiedUser
{
/// <summary>
/// 唯一编码
/// </summary>
[Column(IsIdentity = false, IsPrimary = true, Position = 1)]
public override T Id { get; init; }
/// <summary>
/// 修改者编号
/// </summary>
[JsonIgnore]
[Column(CanInsert = false, Position = -1)]
public long? ModifiedUserId { get; init; }
/// <summary>
/// 修改者用户名
/// </summary>
[JsonIgnore]
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31, CanInsert = false, Position = -1)]
public string ModifiedUserName { get; init; }
}