interface requestSendNoti {
  profileId: string;
  isSendMail: boolean;
  isSendInbox: boolean;
  isSendNotification: boolean;
}
interface DataCopyOrder {
  id: string;
  personalId: string;
  name: string;
  idCard: string;
  position: string;
  unit: string;
  send: string;
  mutiselect: number[];
}
interface ResponseOrganiz {
  firstName: string;
  idCard: string;
  lastName: string;
  name: string;
  position: string;
  prefixId: string;
  profileId: string;
  unit: string;
}

interface ResDetailDeceased {
  id: string;
  profileId: string;
  prefix: string;
  firstName: string;
  lastName: string;
  root: string;
  rootShortName: string;
  child1: string | null;
  child1ShortName: string | null;
  child2: string | null;
  child2ShortName: string | null;
  child3: string | null;
  child3ShortName: null;
  child4: string | null;
  child4ShortName: string | null;
  posMasterNo: number | null;
  position: string;
  posLevelName: string;
  posTypeName: string;
  number: string;
  date: Date | null | undefined;
  location: string;
  reason: string;
  pathName: string | null;
  isActive: boolean;
  createdAt: string;
}

interface FormActive {
  activeId: string;
  activeName: string;
  draftId: string;
  draftName: string;
  orgPublishDate: Date | null;
  isPublic: boolean;
}

interface OrgTree {
  orgTreeId: string;
  orgRootId: string;
  orgLevel: number;
  orgTreeName: string;
  orgTreeShortName: string;
  orgTreeCode: string;
  orgCode: string;
  orgTreeRank: string;
  orgTreeOrder: number | null;
  orgRootCode: string;
  orgTreePhoneEx: string;
  orgTreePhoneIn: string;
  orgTreeFax: string;
  orgRevisionId: string;
  children: OrgTree[];
}

interface TreeMain {
  children: TreeMain[]; // ปรับเป็นชนิดข้อมูลที่ถูกต้องตามโครงสร้างของ children ถ้าเป็นไปได้
  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;
  orgTreeShortName: string;
  totalPosition: number;
  totalPositionCurrentUse: number;
  totalPositionCurrentVacant: number;
  totalPositionNextUse: number;
  totalPositionNextVacant: number;
  totalRootPosition: number;
  totalRootPositionCurrentUse: number;
  totalRootPositionCurrentVacant: number;
  totalRootPositionNextUse: number;
  totalRootPositionNextVacant: number;
}

interface ResponseDececased {
  child1: string;
  child1ShortName: string;
  child2: string;
  child2ShortName: string;
  child3: string;
  child3ShortName: string;
  child4: string;
  child4ShortName: string;
  citizenId: string;
  createdAt: string;
  firstName: string;
  id: string;
  isActive: boolean;
  lastName: string;
  posLevelName: string;
  posMasterNo: number;
  posTypeName: string;
  position: string;
  prefix: string;
  profileId: string;
  profileType: string;
  root: string;
  rootShortName: string;
}

export type {
  requestSendNoti,
  DataCopyOrder,
  ResponseOrganiz,
  ResDetailDeceased,
  FormActive,
  OrgTree,
  TreeMain,
  ResponseDececased,
};
