//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库:https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway
// 使用文档:https://thingsgateway.cn/
// QQ群:605534569
//------------------------------------------------------------------------------
using System.ComponentModel.DataAnnotations;
namespace ThingsGateway.Admin.Application;
///
/// 系统角色表
///
[SugarTable("sys_role", TableDescription = "系统角色表")]
[Tenant(SqlSugarConst.DB_Admin)]
public class SysRole : BaseEntity
{
///
/// 名称
///
[SugarColumn(ColumnDescription = "名称", Length = 200)]
[Required]
[AutoGenerateColumn(Visible = true, Sortable = true, Filterable = true)]
public virtual string Name { get; set; }
///
/// 编码
///
[SugarColumn(ColumnDescription = "编码", Length = 200)]
[AutoGenerateColumn(Visible = true, Sortable = true, Filterable = true)]
public string Code { get; set; }
///
/// 分类
///
[SugarColumn(ColumnDescription = "分类", IsNullable = false)]
[AutoGenerateColumn(Visible = true, Sortable = true, Filterable = true)]
public virtual RoleCategoryEnum Category { get; set; }
///
/// 组织id
///
[SugarColumn(ColumnName = "OrgId", ColumnDescription = "组织id", IsNullable = false)]
[AutoGenerateColumn(Ignore = true)]
public long OrgId { get; set; }
///
/// 默认数据范围
///
[SugarColumn(ColumnName = "DefaultDataScope", ColumnDescription = "默认数据范围", IsJson = true, ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
[AutoGenerateColumn(Ignore = true)]
public virtual DefaultDataScope DefaultDataScope { get; set; } = new();
public override bool Equals(object? obj)
{
if (obj == null || !(obj is SysRole))
{
return false;
}
return Id == ((SysRole)obj).Id;
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
}
///
/// 默认数据范围
///
public class DefaultDataScope
{
///
/// 数据范围
///
public DataScopeEnum ScopeCategory { get; set; }
///
/// 自定义机构范围列表
///
public List ScopeDefineOrgIdList { get; set; } = new List();
}