interface DataOption {
  id: string;
  name: string;
}

interface DataOptionCheckBox {
  label: string;
  value: boolean;
}
interface DataOptionTechnique {
  label: string;
  value: string;
}

interface FormFilter {
  page: number;
  pageSize: number;
  keyword: string;
  type: string;
  year: number;
  posType: string;
  posLevel: string;
  retireYear: string | null;
  rangeYear: { min: number; max: number };
  isShowRetire: boolean | null;
  isProbation: boolean | null;
}

interface ItemsMenu {
  label: string;
  value: string;
  icon: string;
  color: string;
}

interface NewPagination {
  descending: boolean;
  page: number;
  rowsPerPage: number;
  sortBy: string;
}

interface DataPerson {
  id: string;
  name: string;
  prefix: string;
  rank: string;
  firstName: string;
  lastName: string;
  citizenId: string;
  level: string;
  type: string;
  posLevelId: string;
  posTypeId: string;
  position: string;
  positionSide: string;
  posNo: string;
  oc: string;
  [key: string]: any;
}

interface ItemsDownload {
  label: string;
  value: string;
  icon: string;
  color: string;
}

interface FormProjectDetail {
  developmentProjectTypes: [];
  projectModal: string | null;
  isBackPlanned: boolean;
  isHoldPlanned: boolean;
  projectDayBackPlanned: string | null;
  projectDayHoldPlanned: string | null;
  projectNigthHoldPlanned: string | null;
  developmentProjectTechniquePlanneds: [];
  isBackActual: boolean;
  isHoldActual: boolean;
  projectDayBackActual: string | null;
  projectDayHoldActual: string | null;
  projectNigthHoldActual: string | null;
  developmentProjectTechniqueActuals: [];
  projectModalActual?: string | null;
  projectModalPlanned?: string | null;
  strategyChildPlannedId?: string | null; //id ยุทธศาสตร์เป้าหมายตามแผน
  strategyChildPlannedNode: number | null; //node ยุทธศาสตร์เป้าหมายตามแผน
  strategyChildActualId?: string | null; //id ยุทธศาสตร์เป้าหมายตามจริง
  strategyChildActualNode: number | null; //node ยุทธศาสตร์เป้าหมายตามจริง
}

export type {
  DataOption,
  DataOptionCheckBox,
  ItemsMenu,
  NewPagination,
  FormFilter,
  DataPerson,
  ItemsDownload,
  FormProjectDetail,
  DataOptionTechnique,
};
