interface FormCommand {
  elementaryFullName: string;
  elementaryPosition: string;
  abovelevelFullname: string;
  abovelevelPosition: string;
}

interface FormCommandRef {
  elementaryFullName: object | null;
  elementaryPosition: object | null;
  abovelevelFullname: object | null;
  abovelevelPosition: object | null;

  [key: string]: any;
}

interface FileEvaluationRefRef {
  fileEvaluation81: object | null;
  fileEvaluation82: object | null;
  fileEvaluation83: object | null;
  fileEvaluation84: object | null;
  fileEvaluation85: object | null;
  fileEvaluation86: object | null;

  [key: string]: any;
}

interface EducationForm {
  country: string;
  degree: string;
  duration: string;
  durationYear: number;
  educationLevel: string;
  endDate: Date;
  field: string;
  finishDate: Date;
  fundName: string;
  gpa: string;
  institute: string;
  isDate: boolean;
  isEducation: boolean;
  other: string;
  startDate: Date;
}

interface CertificatesForm {
  certificateNo: string;
  certificateType: string;
  expireDate: Date;
  issueDate: Date;
  issuer: string;
}

interface EvaluateList {
  id: string;
  citizanId: string;
  fullName: string;
  position: string;
  level: string | null;
  positionNumber: string;
  agency: string;
  status: string | null;
}

interface FormFeature {
  isEducationalQft: boolean;
  isGovermantServiceHtr: boolean;
  isOperatingExp: boolean;
  isMinPeriodOfTenure: boolean;
  isHaveSpecificQft: boolean;
  isHaveProLicense: boolean;
  isHaveMinPeriodOrHoldPos: boolean;
}

export type {
  FormCommand,
  FormCommandRef,
  EducationForm,
  CertificatesForm,
  FileEvaluationRefRef,
  EvaluateList,
  FormFeature,
};
