namespace OASystem.Domain.Entities.Groups
{
    /// 
    /// 签证流程管控步骤
    /// 
    [SugarTable(tableName: "Grp_VisaProcessSteps", TableDescription = "签证流程步骤")]
    public class Grp_VisaProcessSteps : EntityBase
    {
        /// 
        /// 团组Id(Grp_DelegationInfo)
        /// 
        [SugarColumn(ColumnName = "GroupId", ColumnDescription = "团组Id(Grp_DelegationInfo)", IsNullable = true, ColumnDataType = "int")]
        public int GroupId { get; set; }
        /// 
        /// 步骤
        /// 
        [SugarColumn(ColumnName = "Step", ColumnDescription = "步骤", IsNullable = true, ColumnDataType = "int")]
        public int Step { get; set; }
        /// 
        /// 存储值(办理日期(2025-01-01))、bool(false,true))
        /// 
        [SugarColumn(ColumnName = "ProcDate", ColumnDescription = "存储值(办理日期(2025-01-01))、bool(false,true))", IsNullable = true, ColumnDataType = "varchar(50)")]
        public string StoreVal { get; set; }
        /// 
        /// 附件地址
        /// 
        [SugarColumn(ColumnName = "ProcDate", ColumnDescription = "附件地址", IsNullable = true, ColumnDataType = "varchar(120)")]
        public string AttachUrl { get; set; }
        /// 
        /// 是否确认完成
        /// 
        [SugarColumn(ColumnName = "IsCompleted", ColumnDescription = "确认完成", IsNullable = true, ColumnDataType = "bit")]
        public bool IsCompleted { get; set; } = false;
        /// 
        /// 最后更新人
        /// 
        [SugarColumn(ColumnName = "LastUpdateUserId", ColumnDescription = "最后更新人", IsNullable = true, ColumnDataType = "int")]
        public int LastUpdateUserId { get; set; }
        /// 
        /// 最后更新时间
        /// 
        [SugarColumn(ColumnName = "LastUpdateTime", ColumnDescription = "最后更新时间", IsNullable = true, ColumnDataType = "varchar(30)")]
        public string LastUpdateTime { get; set; }
        public Grp_VisaProcessSteps() { }
        /// 
        /// 流程步骤初始化
        /// 
        /// 
        /// 
        public static List StepsInit(int groupId)
        {
            return new List() {
                new(){ GroupId = groupId, Step = 1 , }, //第一步:签证启动日(团组信息操作里面打勾确认出团)
                new(){ GroupId = groupId, Step = 2 , }, //第二步:分配工作(从倒退表里-出批件、护照办理取时间)
                new(){ GroupId = groupId, Step = 3 , }, //第三步:送外办时间(从倒退表里-送签签证取时间)
                new(){ GroupId = groupId, Step = 4 , }, //第四步:读取预计出签时间(从签证费用标准-签证时间工作日取时间,送外办时间+签证时间(工作日))
                new(){ GroupId = groupId, Step = 5 , }, //第五步:实际出签时间(手动填写) 附件
                new(){ GroupId = groupId, Step = 6 , }, //第六步:是否需要开出境证明 (否,是) 附件
                new(){ GroupId = groupId, Step = 7 , }, //第七步:是否需要办理电子入境卡手续(否,是) -> 如果是,系统生成附件(个人信息资料+机票航班信息+酒店信息)【在出发前三天内填写,取具体的日期】
                new(){ GroupId = groupId, Step = 8 , }, //第八步:确认完成操作 (确认完成操作后,不可更改该流程数据)
            };
        }
    }
}