import { ImageItem } from '@/types/disaster-control';

export interface DrillPlanItem {
  /*自增主键 */
  id: number;
  /*演练规模（字典） */
  drillScope: string;
  /*演练内容 */
  drillContent: string;
  /*计划完成时间 */
  dueCompleteTime: string;
  /*责任部门id列表 */
  responsibleDeptIdList: string;
  /*责任部门名称列表 */
  responsibleDeptNameList: string;
  /*配合部门id列表 */
  coordinateDeptIdList: string;
  /*配合部门名称列表 */
  coordinateDeptNameList: string;
  /*应急预案id */
  emergencyPlanId: number;
  /*审批模板id */
  approvalTemplateId: number;
  /*状态: 1-待传脚本，2-脚本会签，3-待执行，4-待记录，5-记录待审批，6-已完成 */
  status: number;
  /*演练时间 */
  drillTime: string;
  /*演练地点 */
  drillLocation: string;
  /*演练负责人id */
  personInChargeId: number;
  /*演练部门id列表 */
  drillDeptIdList: string;
  /*演练脚本 */
  drillScript: string;
  /*提交人 */
  createdBy: number;
}

export interface DrillPlanListSearch {
  drillScope?: number;
  drillContent?: string;
  responsibleDept?: string;
  status?: number;
  daterange?: string[];
  dueCompleteTimeStart?: string;
  dueCompleteTimeEnd?: string;
}

export interface CreateEmergencyDrillRuleForm {
  /*演练规模（字典） */
  drillScope?: string;
  /*演练内容 */
  drillContent?: string;
  /*计划完成时间 */
  dueCompleteTime?: string;
  /*责任部门id列表 */
  responsibleDeptIdList?: number[];
  /*配合部门id列表 */
  coordinateDeptIdList?: number[];
  /*应急预案 */
  emergencyPlanId?: number;
  /*审批流程 */
  approvalTemplateId?: number;
}

export interface DrillPlanItemDetail {
  /*自增主键 */
  id?: number;
  /*演练规模（字典） */
  drillScope: string;
  /*演练内容 */
  drillContent: string;
  /*计划完成时间 */
  dueCompleteTime: string;
  /*责任部门id列表 */
  responsibleDeptIdList: string;
  /*责任部门名称列表 */
  responsibleDeptNameList: string;
  /*配合部门id列表 */
  coordinateDeptIdList?: string;
  /*配合部门名称列表 */
  coordinateDeptNameList?: string;
  /*应急预案附件 */
  emergencyPlanAppendix?: string;
  /*应急预案id */
  emergencyPlanId?: number;
  /*审批模板id */
  approvalTemplateId: number;
  /*状态?: 1-待传脚本，2-脚本会签，3-待执行，4-待记录，5-记录待审批，6-已完成 */
  status?: number;
  /*演练时间 */
  drillTime?: string;
  /*演练地点 */
  drillLocation?: string;
  /*演练负责人id */
  personInChargeId?: number;
  /*演练部门id列表 */
  drillDeptIdList?: string;
  /*演练脚本 */
  drillScript?: string;
  /*提交人 */
  createdBy?: number;
  /*创建时间 */
  createdAt?: string;
  /*更新时间 */
  updatedAt?: string;
  /*0-未删除，大于0(时间戳)-已删除 */
  isDeleted?: number;
  /*演练负责人名称 */
  personInChargeName?: string;
  /*计划详情列表 */
  planDetailList?: {
    /*自增主键 */
    id?: number;
    /*演练计划id */
    drillPlanId?: number;
    /*参与部门id */
    deptId?: number;
    /*参与部门名称 */
    deptName?: number;
    /*演练脚本状态?: 1-未会签，2-已会签 */
    drillScriptStatus?: number;
    /*计划参与人数 */
    planToParticipateCount?: number;
    /*实际签到人数 */
    actualSignCount?: number;
    /*创建时间 */
    createdAt?: string;
    /*更新时间 */
    updatedAt?: string;
    /*0-未删除，大于0(时间戳)-已删除 */
    isDeleted?: number;
  }[];
}

export interface ExecuteDrillPlanRuleForm {
  drillPlanId?: number;
  /*演练时间 */
  drillTime?: string;
  /*演练地点 */
  drillLocation?: string;
  /*演练负责人id */
  personInChargeId?: number;
  personInChargeName?: string;
  /*演练部门id列表 */
  drillDeptIdList?: number[];
  /*演练脚本 */
  drillScript?: any;
}

export interface DrillPlanRecord {
  /*自增主键 */
  id: number;
  /*演练计划id */
  drillPlanId: number;
  /*参与人员 */
  participants?: string;
  /*演练描述 */
  drillDescription?: string;
  /*演练照片 */
  drillImage: string;
  /*演练效果评估 */
  drillEffectAssess?: string;
  // 演练问题分析
  drillProblemAnalyse?: string;
  // 演练改进措施
  drillImproveMethod?: string;

  /*审批状态?: 0-审批中，1-已审批，2-已退回 */
  approvalStatus?: number;
  /*创建时间 */
  createdAt?: string;
  /*更新时间 */
  updatedAt?: string;
  /*0-未删除，大于0(时间戳)-已删除 */
  isDeleted?: number;
  /*演练内容 */
  drillContent?: string;
  /*演练时间 */
  drillTime?: string;
  /*演练地点 */
  drillLocation?: string;
  /*提交人id */
  createdById?: number;
  /*提交人姓名 */
  createdByName?: string;
  /*提交时间 */
  createdTime?: string;
  /*演练负责人id */
  personInChargeId?: number;
  /*演练负责人姓名 */
  personInChargeName?: string;
  /*审批通过时间 */
  approvalTime?: string;
  /*审批模板id */
  approvalTemplateId: number;
}

export interface DrillRecordRuleForm {
  drillPlanId?: number;
  /*参与人员 */
  participants?: string;
  /*演练描述 */
  drillDescription?: string;
  /*演练照片 */
  drillImage?: string;
  drillImagesFile?: ImageItem[];
  /*演练效果评估 */
  drillEffectAssess?: string;
  // 演练问题分析
  drillProblemAnalyse?: string;
  // 演练改进措施
  drillImproveMethod?: string;
  /*演练记录审批内容 */
  approvalDescription?: string;
  /*审批人 */
  approvalInfoList?: { approvalOrder?: number; approverIdList?: string }[];
}

export interface DrillApprovalItem {
  nodeDescription: string;
  /*审批顺序 */
  approvalOrder: number;
  /*审批人选择方式: 0-固定，1-自选 */
  approverType: number;
  /*审批流程列表 */
  processInfoList: {
    /*审批部门id */
    approvalDeptId: number;
    /*审批部门名称 */
    approvalDeptName: string;
    /*审批人id */
    approverId: number;
    /*审批人名称 */
    approverName: string;
    /*审批方式: 0-会签，1-或签 */
    approvalType: number;
    /*审批状态: 1-已审批，2-待审批，3-退回 */
    approvalStatus: number;
    /*审批时间 */
    approvalTime?: string;
    /*审批内容 */
    approvalContent: string;
  }[];
}

export interface DrillApprovalRuleForm {
  approvalDescription?: string;
  approverListInfo: {
    nodeDescription: string;
    approvalOrder: number;
    approvalType: number;
    approverType: number;
    approverList: any[];
    approverIds?: number[];
    // approverName: string[];
  }[];
}
