namespace Admin.NET.Plugin.AiDOP.Entity.S0.Sales;
///
/// S0 订单优先级业务规则(ado_s0_sales_order_priority_rule)
///
[SugarTable("ado_s0_sales_order_priority_rule", "S0 订单优先级业务规则")]
public class AdoS0PriorityRule
{
[SugarColumn(ColumnName = "Id", ColumnDescription = "主键", IsPrimaryKey = true, IsIdentity = true)]
public long Id { get; set; }
[SugarColumn(ColumnName = "CompanyRefId", ColumnDescription = "公司 ID")]
public long CompanyRefId { get; set; }
[SugarColumn(ColumnName = "FactoryRefId", ColumnDescription = "工厂 ID")]
public long FactoryRefId { get; set; }
[SugarColumn(ColumnName = "Code", ColumnDescription = "规则编码", Length = 100)]
public string Code { get; set; } = string.Empty;
[SugarColumn(ColumnName = "Name", ColumnDescription = "规则名称", Length = 200)]
public string Name { get; set; } = string.Empty;
[SugarColumn(ColumnName = "PriorityLevel", ColumnDescription = "优先级数值(越小越高)")]
public int PriorityLevel { get; set; }
[SugarColumn(ColumnName = "SortDirection", ColumnDescription = "排序方向(asc/desc)", Length = 10)]
public string SortDirection { get; set; } = "asc";
[SugarColumn(ColumnName = "SourceEntity", ColumnDescription = "来源实体", Length = 200, IsNullable = true)]
public string? SourceEntity { get; set; }
[SugarColumn(ColumnName = "SourceField", ColumnDescription = "来源字段", Length = 200, IsNullable = true)]
public string? SourceField { get; set; }
[SugarColumn(ColumnName = "SourceFieldType", ColumnDescription = "来源字段类型", Length = 100, IsNullable = true)]
public string? SourceFieldType { get; set; }
[SugarColumn(ColumnName = "SourceLinkField", ColumnDescription = "来源关联字段", Length = 200, IsNullable = true)]
public string? SourceLinkField { get; set; }
[SugarColumn(ColumnName = "WorkOrderField", ColumnDescription = "工单字段", Length = 200, IsNullable = true)]
public string? WorkOrderField { get; set; }
[SugarColumn(ColumnName = "WorkOrderFieldType", ColumnDescription = "工单字段类型", Length = 100, IsNullable = true)]
public string? WorkOrderFieldType { get; set; }
[SugarColumn(ColumnName = "WorkOrderLinkField", ColumnDescription = "工单关联字段", Length = 200, IsNullable = true)]
public string? WorkOrderLinkField { get; set; }
[SugarColumn(ColumnName = "RuleExpr", ColumnDescription = "规则表达式 JSON", Length = 1000, IsNullable = true)]
public string? RuleExpr { get; set; }
[SugarColumn(ColumnName = "Remark", ColumnDescription = "备注", Length = 500, IsNullable = true)]
public string? Remark { get; set; }
[SugarColumn(ColumnName = "IsEnabled", ColumnDescription = "是否启用", ColumnDataType = "tinyint(1)")]
public bool IsEnabled { get; set; } = true;
[SugarColumn(ColumnName = "CreatedAt", ColumnDescription = "创建时间")]
public DateTime CreatedAt { get; set; } = DateTime.Now;
[SugarColumn(ColumnName = "UpdatedAt", ColumnDescription = "更新时间", IsNullable = true)]
public DateTime? UpdatedAt { get; set; }
/// 客户类型显示标签(不落库,由业务层填充)
[SugarColumn(IsIgnore = true)]
public string? CustomerTypeLabel { get; set; }
/// 订单类型显示标签(不落库,由业务层填充)
[SugarColumn(IsIgnore = true)]
public string? OrderTypeLabel { get; set; }
/// 到期状态显示标签(不落库,由业务层填充)
[SugarColumn(IsIgnore = true)]
public string? DueStatusLabel { get; set; }
}