interface Persons {
  personId: string; //id อ้างอิง profile
  idcard: string; //เลขประจำตัวประชาชน
  prefix: string; //คำนำหน้า
  firstName: string; //ชื่อ
  lastName: string; //นามสกุล
  posNo: string; //เลขที่ตำแหน่ง
  position: string; //ตำแหน่ง
  positionLevel: string; //ระดับ
  salary: number; //เงินเดือน
  organization: string; //สังกัด
  name: string;
  report?: boolean; // ส่งไปสรุปผลแล้ว
  isSend?: string; // ส่งไปยุติแล้ว
  isSuspend?: string; //ส่งไปพักแล้ว
  statusDiscard?: string; //ส่งไปงดโทษ/เพิ่มโทษแล้ว
}
interface PersonsArray {
  id: string; //id อ้างอิง profile
  idcard: string; //เลขประจำตัวประชาชน
  prefix: string; //คำนำหน้า
  firstName: string; //ชื่อ
  lastName: string; //นามสกุล
  posNo: string; //เลขที่ตำแหน่ง
  position: string; //ตำแหน่ง
  positionLevel: string; //ระดับ
  salary: number; //เงินเดือน
  organization: string; //สังกัด
  name: string;
  report?: boolean;
}
interface Director {
  directorId?: string;
  duty?: string;
  email: string;
  firstName: string;
  id: string;
  lastName: string;
  phone: string;
  position: string;
  prefix: string;
  total?: number;
}
// interface Persons {
//   personId: string; //id อ้างอิง profile
//   idcard: string; //เลขประจำตัวประชาชน
//   prefix: string; //คำนำหน้า
//   firstName: string; //ชื่อ
//   lastName: string; //นามสกุล
//   posNo: string; //เลขที่ตำแหน่ง
//   position: string; //ตำแหน่ง
//   positionLevel: string; //ระดับ
//   salary: number; //เงินเดือน
//   organization: string; //สังกัด
// }

interface FormData {
  respondentType: string;
  organizationId: string;
  consideredAgency: string;
  disciplinaryDateAllegation: Date | null;
  disciplinaryDateEvident: Date | null;
  disciplinaryCaseFault: string;
  disciplinaryInvestigateAt: string;
  disciplinaryFaultLevel: string;
  disciplinaryRefLaw: string;
  disciplinarySummaryEvidence: string;
  disciplinaryRecordAccuser: string;
  disciplinaryWitnesses: string;
  result: string;
  directors: Director[];
  persons: Persons[];
  extendStatus: boolean;
  disciplinaryDateStart: Date | null|string;
  disciplinaryDateEnd: Date | null|string;
  daysExtend: number;
  disciplinaryDateInvestigation: Date | null;
  disciplinaryDateResult: Date | null;
  disciplinaryStatusResult: string;
  disciplinaryCauseText: string;
  disciplinaryResult: string;
  disciplinaryExtendHistory: ExtendHistoryObject[];
  disciplinaryFaultLevelOther:string
}

interface ExtendHistoryObject {
  name: string;
  num: number;
  daysExtend: number | null;
  dateStart: Date;
  dateEnd: Date;
}

interface DisciplinaryRef {
  // respondentType: object | null;
  // organizationId: object | null;
  // disciplinaryDateAllegation: object | null;
  // disciplinaryDateEvident: object | null;
  // disciplinaryCaseFault: object | null;
  // disciplinaryInvestigateAt: object | null;
  // disciplinaryFaultLevel: object | null;
  // disciplinaryRefLaw: object | null;
  // disciplinarySummaryEvidence: object | null;
  // disciplinaryRecordAccuser: object | null;
  // disciplinaryWitnesses: object | null;
  // result: object | null;
  // date: object | null;
  // dateEnd: object | null;
  // daysExtend: object | null;
  // disciplinaryDateResult: object | null;

  // filesRecordAccuser: object | null;
  // filesWitnesses: object | null;
  // filesEtc: object | null;
  // casefault: object | null;
  // typefault: object | null;
  // faultLevel: object | null;
  // refLaw: object | null;
  // detailComplaint: object | null;
  // whereInvestigate: object | null;
  // trueDetail: object | null;
  // evidence: object | null;
  // recordAccuser: object | null;
  // witnesses: object | null;
  // InvestResults: object | null;
  [key: string]: any;
}

export type { FormData, DisciplinaryRef, Persons, Director, PersonsArray };
