interface DataPeriodLatest {
  group1id: string; // Id กลุ่ม1
  group2id: string; // Id กลุ่ม2
  effectiveDate: string; // วันที่มีผลบังคับใช้
  period: string; // ประเภทผัง (SPECIAL->รอบพิเศษ,APR->รอบเมษายน,OCT->รอบตุลาคม)
  group1IsClose: boolean;
  group2IsClose: boolean;
}

interface DataPeriodQuota {
  total: number; //จำนวนคนทั้งหมด
  fifteenPercent: number; //15% ของจำนวนคน
  chosen: number; //เลือกไปแล้ว
  remaining: number; //คงเหลือโควตาnumber
}

interface DataRound {
  effectiveDate: string;
  id: string;
  isActive: boolean;
  period: string;
  revisionId: string;
  status: string;
  year: number;
  isClose: boolean;
}

interface DataAgency {
  ancestorDNA: string;
  createdAt: string;
  createdFullName: string;
  createdUserId: string;
  id: string;
  lastUpdateFullName: string;
  lastUpdateUserId: string;
  lastUpdatedAt: string;
  orgChild1s: any[];
  orgRevision: any[];
  orgRevisionId: string;
  orgRootCode: string;
  orgRootFax: string;
  orgRootName: string;
  orgRootOrder: number;
  orgRootPhoneEx: string;
  orgRootPhoneIn: string;
  orgRootRank: string;
  orgRootShortName: string;
}

interface DataPerson {
  id?: string;
  amount: number;
  child1: string;
  child1Id: string;
  child2: string;
  child2Id: string;
  child3: string | null;
  child3Id: string | null;
  child4: string | null;
  child4Id: string | null;
  citizenId: string;
  firstName: string;
  isDuration: boolean;
  isPunish: boolean;
  isResult: boolean;
  isRetired: boolean;
  isRetired2: boolean;
  lastName: string;
  orgShortName: string;
  posExecutive: string | null;
  posLevel: string;
  posMasterNo: number;
  posMasterNoPrefix: string;
  posMasterNoSuffix: string;
  posType: string;
  position: string;
  prefix: string;
  root: string;
  rootId: string;
  rank: string | undefined;
}

interface DataPeriod {
  amount: number;
  amountSpecial: null | number;
  amountUse: null | number;
  child1: string | null;
  child1Id: string | null;
  child2: string | null;
  child2Id: string | null;
  child3: string | null;
  child3Id: string | null;
  child4: string | null;
  child4Id: string | null;
  citizenId: string;
  createdAt: string;
  createdFullName: string;
  createdUserId: string;
  duration: null | number;
  firstName: string;
  id: string;
  lastName: string;
  lastUpdateFullName: string;
  lastUpdateUserId: string;
  lastUpdatedAt: string;
  orgShortName: string;
  posExecutive: null | string;
  posLevel: string;
  posMasterNo: number;
  posMasterNoPrefix: string;
  posMasterNoSuffix: string;
  posType: string;
  position: string;
  positionSalaryAmount: null | number;
  prefix: string;
  punish: null | string;
  result: null | string;
  retired: null | string;
  retired2: null | string;
  revisionId: string;
  root: string;
  rootId: string;
  salaryOrgId: string;
  status: string;
  type: string;
}

interface ResSalaryOrg {
  chosen: number;
  currentAmount: number;
  fifteenPercent: number;
  org: string;
  remaining: number;
  remainingAmount: number;
  sixPercentAmount: number;
  sixPercentSpentAmount: number;
  spentAmount: number;
  total: number;
  totalAmountSpecial: number;
  totalBackup: number;
  useAmount: number;
}
export type {
  DataPeriodLatest,
  DataPeriodQuota,
  DataRound,
  DataAgency,
  DataPerson,
  DataPeriod,
  ResSalaryOrg,
};
