// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! namespace Admin.NET.Core; /// /// 框架实体基类Id /// public abstract class EntityBaseId { /// /// 雪花Id /// [SugarColumn(ColumnName = "Id", ColumnDescription = "主键Id", IsPrimaryKey = true, IsIdentity = false)] public virtual long Id { get; set; } } /// /// 框架实体基类 /// [SugarIndex("index_{table}_CT", nameof(CreateTime), OrderByType.Asc)] public abstract class EntityBase : EntityBaseId { /// /// 创建时间 /// [SugarColumn(ColumnDescription = "创建时间", IsNullable = true, IsOnlyIgnoreUpdate = true)] public virtual DateTime CreateTime { get; set; } /// /// 更新时间 /// [SugarColumn(ColumnDescription = "更新时间")] public virtual DateTime? UpdateTime { get; set; } /// /// 创建者Id /// [OwnerUser] [SugarColumn(ColumnDescription = "创建者Id", IsOnlyIgnoreUpdate = true)] public virtual long? CreateUserId { get; set; } ///// ///// 创建者 ///// //[Newtonsoft.Json.JsonIgnore] //[System.Text.Json.Serialization.JsonIgnore] //[Navigate(NavigateType.OneToOne, nameof(CreateUserId))] //public virtual SysUser CreateUser { get; set; } /// /// 创建者姓名 /// [SugarColumn(ColumnDescription = "创建者姓名", Length = 64, IsOnlyIgnoreUpdate = true)] public virtual string? CreateUserName { get; set; } /// /// 修改者Id /// [SugarColumn(ColumnDescription = "修改者Id")] public virtual long? UpdateUserId { get; set; } ///// ///// 修改者 ///// //[Newtonsoft.Json.JsonIgnore] //[System.Text.Json.Serialization.JsonIgnore] //[Navigate(NavigateType.OneToOne, nameof(UpdateUserId))] //public virtual SysUser UpdateUser { get; set; } /// /// 修改者姓名 /// [SugarColumn(ColumnDescription = "修改者姓名", Length = 64)] public virtual string? UpdateUserName { get; set; } } /// /// 框架实体基类(删除标志) /// [SugarIndex("index_{table}_D", nameof(IsDelete), OrderByType.Asc)] public abstract class EntityBaseDel : EntityBase, IDeletedFilter { /// /// 软删除 /// [SugarColumn(ColumnDescription = "软删除")] public virtual bool IsDelete { get; set; } = false; } /// /// 机构实体基类(数据权限) /// public abstract class EntityBaseOrg : EntityBase, IOrgIdFilter { /// /// 机构Id /// [SugarColumn(ColumnDescription = "机构Id", IsNullable = true)] public virtual long OrgId { get; set; } ///// ///// 创建者部门Id ///// //[SugarColumn(ColumnDescription = "创建者部门Id", IsOnlyIgnoreUpdate = true)] //public virtual long? CreateOrgId { get; set; } ///// ///// 创建者部门 ///// //[Newtonsoft.Json.JsonIgnore] //[System.Text.Json.Serialization.JsonIgnore] //[Navigate(NavigateType.OneToOne, nameof(CreateOrgId))] //public virtual SysOrg CreateOrg { get; set; } ///// ///// 创建者部门名称 ///// //[SugarColumn(ColumnDescription = "创建者部门名称", Length = 64, IsOnlyIgnoreUpdate = true)] //public virtual string? CreateOrgName { get; set; } } /// /// 机构实体基类(数据权限、删除标志) /// public abstract class EntityBaseOrgDel : EntityBaseDel, IOrgIdFilter { /// /// 机构Id /// [SugarColumn(ColumnDescription = "机构Id", IsNullable = true)] public virtual long OrgId { get; set; } } /// /// 租户实体基类 /// public abstract class EntityBaseTenant : EntityBase, ITenantIdFilter { /// /// 租户Id /// [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)] public virtual long? TenantId { get; set; } } /// /// 租户实体基类(删除标志) /// public abstract class EntityBaseTenantDel : EntityBaseDel, ITenantIdFilter { /// /// 租户Id /// [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)] public virtual long? TenantId { get; set; } } /// /// 租户实体基类Id /// public abstract class EntityBaseTenantId : EntityBaseId, ITenantIdFilter { /// /// 租户Id /// [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)] public virtual long? TenantId { get; set; } } /// /// 租户机构实体基类(数据权限) /// public abstract class EntityBaseTenantOrg : EntityBaseOrg, ITenantIdFilter { /// /// 租户Id /// [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)] public virtual long? TenantId { get; set; } } /// /// 租户机构实体基类(数据权限、删除标志) /// public abstract class EntityBaseTenantOrgDel : EntityBaseOrgDel, ITenantIdFilter { /// /// 租户Id /// [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)] public virtual long? TenantId { get; set; } }