using SqlSugar;
namespace Model.Entity.System
{
///
/// 系统参数配置表(键值对形式存储业务可调参数,按 Group 分组展示)
/// 内置参数(IsSystem=1)禁止删除,仅允许修改 Value
///
[SugarTable("sys_param")]
public class SystemParamEntity : BaseEntity
{
/// 参数键(唯一,业务侧按 Key 取值,如 data_collect_default_frequency)
[SugarColumn(ColumnName = "ParamKey", ColumnDescription = "参数键(唯一)", Length = 64, IsNullable = false)]
public string ParamKey { get; set; }
/// 参数名称(中文展示名)
[SugarColumn(ColumnName = "ParamName", ColumnDescription = "参数名称", Length = 100, IsNullable = false)]
public string ParamName { get; set; }
/// 参数值(统一字符串存储,业务侧按 ParamType 自行转换)
[SugarColumn(ColumnName = "ParamValue", ColumnDescription = "参数值", ColumnDataType = "text", IsNullable = true)]
public string? ParamValue { get; set; }
/// 值类型(0=int, 1=text, 2=enum, 3=json)决定前端渲染控件
[SugarColumn(ColumnName = "ParamType", ColumnDescription = "值类型(0=int,1=text,2=enum,3=json)", ColumnDataType = "smallint", DefaultValue = "1")]
public byte ParamType { get; set; }
/// 枚举选项(JSON 数组,如 [{"value":"feishu","label":"飞书"}];仅 ParamType=enum 使用)
[SugarColumn(ColumnName = "ParamOptions", ColumnDescription = "枚举选项(JSON数组)", ColumnDataType = "text", IsNullable = true)]
public string? ParamOptions { get; set; }
/// 单位(如 秒/MB,前端展示用)
[SugarColumn(ColumnName = "Unit", ColumnDescription = "单位", Length = 20, IsNullable = true)]
public string? Unit { get; set; }
/// 分组(如 数据采集/告警/工单/文件,前端按分组卡片展示)
[SugarColumn(ColumnName = "Group", ColumnDescription = "分组", Length = 50, IsNullable = true)]
public string? Group { get; set; }
/// 排序号
[SugarColumn(ColumnName = "Sort", ColumnDescription = "排序号", DefaultValue = "0")]
public int Sort { get; set; }
/// 备注(注释提示,如工单编号规则占位符说明)
[SugarColumn(ColumnName = "Remark", ColumnDescription = "备注", Length = 500, IsNullable = true)]
public string? Remark { get; set; }
/// 是否系统内置(1=内置不可删,0=用户自定义)
[SugarColumn(ColumnName = "IsSystem", ColumnDescription = "是否系统内置(1=不可删,0=可删)", ColumnDataType = "smallint", DefaultValue = "0")]
public byte IsSystem { get; set; }
/// 最后修改人
[SugarColumn(ColumnName = "LastUpdateUser", ColumnDescription = "最后修改人", Length = 50, IsNullable = true)]
public string? LastUpdateUser { get; set; }
/// 最后修改时间
[SugarColumn(ColumnName = "LastUpdateTime", ColumnDescription = "最后修改时间", IsNullable = true)]
public DateTime? LastUpdateTime { get; set; }
}
}