namespace Admin.NET.Plugin.AiDOP.Order;
///
/// 合同评审流程节点表(ado_contract_review_flow)
/// 与主表通过 ReviewRecID(主键关联)和 ReviewBillNo(业务编号关联)双字段关联
///
[SugarTable("ado_contract_review_flow", "合同评审流程节点")]
public class ContractReviewFlow
{
[SugarColumn(ColumnName = "RecID", IsPrimaryKey = true, IsIdentity = true)]
public int RecID { get; set; }
/// 关联主表 RecID(主键关联)
[SugarColumn(ColumnName = "ReviewRecID")]
public int ReviewRecID { get; set; }
/// 关联主表 BillNo(业务编号关联)
[SugarColumn(ColumnName = "ReviewBillNo", Length = 64)]
public string ReviewBillNo { get; set; } = string.Empty;
/// 审批环节编号(1=意见评审, 2=意见反馈, 3=二次评审, 4=领导意见, 5=合同盖章)
[SugarColumn(ColumnName = "StageNo")]
public int StageNo { get; set; }
/// 审批环节名称
[SugarColumn(ColumnName = "StageName", Length = 64, IsNullable = true)]
public string? StageName { get; set; }
/// 审批部门名称
[SugarColumn(ColumnName = "Department", Length = 64, IsNullable = true)]
public string? Department { get; set; }
/// 审批部门编号
[SugarColumn(ColumnName = "DeptNo", Length = 64, IsNullable = true)]
public string? DeptNo { get; set; }
/// 同一环节内的顺序(意见评审环节共4个子节点)
[SugarColumn(ColumnName = "Seq", IsNullable = true)]
public int? Seq { get; set; }
/// 审批人账号
[SugarColumn(ColumnName = "ReviewerAccount", Length = 64, IsNullable = true)]
public string? ReviewerAccount { get; set; }
/// 审批人姓名
[SugarColumn(ColumnName = "ReviewerName", Length = 64, IsNullable = true)]
public string? ReviewerName { get; set; }
/// 审批意见
[SugarColumn(ColumnName = "Opinion", Length = 512, IsNullable = true)]
public string? Opinion { get; set; }
/// 节点开始时间(进入审批时记录)
[SugarColumn(ColumnName = "StartTime", IsNullable = true)]
public DateTime? StartTime { get; set; }
/// 节点完成时间(审批完成/驳回时记录)
[SugarColumn(ColumnName = "CompleteTime", IsNullable = true)]
public DateTime? CompleteTime { get; set; }
/// 实际处理天数(CompleteTime - StartTime,自动计算)
[SugarColumn(ColumnName = "ActualDays", IsNullable = true)]
public decimal? ActualDays { get; set; }
/// 节点状态:pending / reviewing / approved / rejected
[SugarColumn(ColumnName = "NodeStatus", Length = 32, IsNullable = true)]
public string? NodeStatus { get; set; }
}