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 FormData {
  respondentType: string;
  organizationId: string | null;
  organization: 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 {
  [key: string]: any;
}

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