interface OptionData {
  id: string | number;
  name: string;
}

interface OptionDataYear {
  id: string;
  name: string;
  year: number;
}

interface OptionReport {
  id: string;
  title: string;
}
interface Optionround {
  profileId: string;
  id: string;
}

interface TypeData {
  fileName: string;
  reason: string;
  pathName: string;
}

interface OptionDataInsignia {
  id: string;
  name: string;
  type?: string;
  insigniaType?: string;
  label?: string;
}
interface InsigniaType {
  label: string;
  name: string;
}

interface OptionPeriod {
  label: string;
  value: number;
}

interface OptionRound {
  id: string;
  year: number;
  name: string;
  period_revision: string;
}
interface DataStat {
  allUserUser: number;
  orgAllCount: number;
  orgNoSendCount: number;
  orgSendCount: number;
}

interface DataPerson {
  address: string;
  citizenId: string;
  date: string;
  dateReceive: string;
  dateReceiveInsignia: string;
  dateReturnInsignia: string;
  datepay: string;
  docReceiveInsignia: string;
  docReturnInsignia: string;
  employeeType: string;
  id: string;
  name: string;
  number: string;
  orgReceiveInsignia: string;
  orgReturnInsignia: string;
  page: string;
  position: string;
  prefix: string;
  profileType: string;
  section: string;
  status: string;
  type: string;
  typepay: string;
  vatnumber: string;
  volumeNo: string;
}

interface DataDocuments {
  annotation: string;
  file: string;
  fileName: string;
}

interface DataAllocate {
  allocate: number;
  id: string;
  insignia: string;
  insigniaId: string;
  remain: number;
  total: number;
  year: number;
}

interface DataInsignia {
  name: string;
  shortName: string;
}

interface DataRecord {
  id: string;
  citizenId: string;
  prefix: string;
  position: string;
  status: string;
  statusMain: string;
  dateReceive: string | Date | null;
  name: string;
  type: string;
  employeeType: string | undefined;
  profileType: string;
  date: string | Date | null;
  volumeNo: string;
  section: string;
  page: string;
  number: string;
  vatnumber: string;
  datepay: string | Date | null;
  typepay: string;
  address: string;
  dateReceiveInsignia: string;
  dateReturnInsignia: string;
  docReceiveInsignia: string;
  docReturnInsignia: string;
  orgReceiveInsignia: string;
  orgReturnInsignia: string;
}

interface DataProfileOtherSystem {
  citizenId: string;
  fullname: string;
  id: string;
  level: string;
  organizationOrganization: string;
  position: string;
  rootId: string;
}
interface Pagination {
  rowsPerPage: number;
}

interface DataOption {
  id: string;
  name: string;
  zipCode?: string;
}
interface DataManageList {
  citizenId: string;
  dateSend: null | string | Date;
  employeeType: string | null;
  id: string;
  insigniaCheck: string;
  insigniaLevel: string;
  insigniaSend: string;
  insigniaType: string;
  isApprove: boolean;
  level: string;
  markDiscipline: boolean;
  markLeave: boolean;
  markRate: boolean;
  name: string;
  position: string;
  profileId: string;
  reason: string;
  requestNote: string;
  salary: string;
  salary2: string;
  statusMark: boolean;
}

export type {
  DataOption,
  OptionData,
  OptionDataYear,
  OptionReport,
  Optionround,
  TypeData,
  OptionDataInsignia,
  InsigniaType,
  OptionPeriod,
  OptionRound,
  DataStat,
  DataPerson,
  DataDocuments,
  DataAllocate,
  DataRecord,
  DataInsignia,
  DataProfileOtherSystem,
  Pagination,
  DataManageList,
};
