interface DataOption {
  id: string;
  name: string;
}
interface DataOptionYear {
  id: number;
  name: string;
}
interface DataOptioGroup {
  id: string;
  name: string;

  disable: Boolean;
}

interface OptionStatus {
  val: string;
  label: string;
}

interface DataNumberOption {
  id: number;
  name: string;
}

interface InvestigatefactsDataRowType {
  id: string;
  title: string;
  respondentType: string;
  offenseDetails: string;
  investigationDetail: string;
  dateInvestigate: string;
  investigationStatusResult: string;
  status: string;
}

interface investigateDisDataRowType {
  id: string; //id รายการ
  title: string; //เรื่องร้องเรียน
  interrogated: string; //ผู้ถูกสอบสวน
  descMistake: string; //ลักษณะความผิด
  mistakeLevel: string; //ระดับโทษความผิด
  mistakeCase: string; //กรณีความผิด
  investigationDate: Date | null; //วันที่สอบสวน
  status: string | null; //สถานะ
  isResultConfirmed: Boolean; //ยืนยันผลเเล้ว/ยังไม่ได้ยืนยันผล
}

interface directorType {
  id: string;
  directorId?: string;
  prefix: string;
  firstName: string;
  lastName: string;
  position: string;
  email: string;
  phone: string;
  total?: number;
  duty?: string;
}
interface responseType {
  id: string;
  directorId?: string;
  prefix: string;
  firstName: string;
  lastName: string;
  position: string;
  email: string;
  phone: string;
  total?: number;
  duty?: string;
}

interface FileLists {
  id: string; //id เอกสาร
  fileName: string; //ชื่่อเอกสาร
  pathName: string; //link file
}

interface Meeting {
  id: string;
  date: Date | string;
  dateStart: Date | string;
  title: string;
  round: string;
  dateEnd: Date | string;
  result: string;
  timePeriod: string;
}

interface Pagination {
  page: number;
  rowsPerPage: number;
}

interface ResOrg {
  labelName: string;
  orgTreeDnaId: string;
  orgCode: string;
  orgLevel: number;
  orgName: string;
  orgRevisionId: string;
  orgRootName: string;
  orgTreeCode: string;
  orgTreeFax: string;
  orgTreeId: string;
  orgTreeName: string;
  orgTreeOrder: number;
  orgTreePhoneEx: string;
  orgTreePhoneIn: string;
  orgTreeRank: string;
  orgTreeRankSub: string;
  orgTreeShortName: string;
  responsibility: string;
  totalPosition: number;
  totalPositionCurrentUse: number;
  totalPositionCurrentVacant: number;
  totalPositionNextUse: number;
  totalPositionNextVacant: number;
  totalRootPosition: number;
  totalRootPositionCurrentUse: number;
  totalRootPositionCurrentVacant: number;
  totalRootPositionNextUse: number;
  totalRootPositionNextVacant: number;
  children: ResOrg[];
}

export type {
  DataOption,
  InvestigatefactsDataRowType,
  investigateDisDataRowType,
  directorType,
  DataNumberOption,
  responseType,
  FileLists,
  DataOptioGroup,
  DataOptionYear,
  OptionStatus,
  Meeting,
  Pagination,
  ResOrg
};
