interface ResRound {
  createdAt: Date;
  createdFullName: string;
  createdUserId: Date;
  durationKPI: string;
  endDate: Date;
  id: Date;
  lastUpdateFullName: string;
  lastUpdateUserId: Date;
  lastUpdatedAt: Date;
  startDate: Date;
}

interface ResDataCapacity {
  description: string;
  id: string;
  name: string;
  type: string;
  capacityDetails: capacityDetails;
}

interface capacityDetails {
  capacityId: string;
  description: string;
  id: string;
  level: string;
}

interface ResEvaluator {
  createdAt: string;
  createdFullName: string;
  createdUserId: string;
  id: string;
  kpiUserEvaluationId: string;
  lastUpdateFullName: string;
  lastUpdateUserId: string;
  lastUpdatedAt: string;
  reason: string;
  topic: string;
  type: string;
}
interface ResResults {
  commanderHighId: string | null;
  commanderId: string | null;
  createdAt: string;
  evaluationResults: string;
  evaluationStatus: string;
  evaluatorId: string;
  firstname: string;
  id: string;
  kpiPeriodId: string;
  lastname: string;
  prefix: string;
  profileId: string;
}

interface ResRoundEvaluate {
  createdAt: string;
  createdFullName: string;
  createdUserId: string;
  durationKPI: string;
  endDate: string;
  id: string;
  isActive: boolean;
  lastUpdateFullName: string;
  lastUpdateUserId: string;
  lastUpdatedAt: string;
  startDate: string;
  year: number;
}

interface ResOrg {
  labelName: string;
  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;
  orgTreeRankSub: string;
  orgTreeShortName: string;
  responsibility: string;
  totalPosition: number;
  totalPositionCurrentUse: number;
  totalPositionCurrentVacant: number;
  totalPositionNextUse: number;
  totalPositionNextVacant: number;
  totalRootPosition: number;
  totalRootPositionCurrentUse: number;
  totalRootPositionCurrentVacant: number;
  totalRootPositionNextUse: number;
  totalRootPositionNextVacant: number;
  children: ResOrg[];
}
interface ResReport {
  reportName: string;
  template: string;
}

interface ResPerson {
  avatar: string;
  avatarName: string;
  citizenId: string;
  firstName: string;
  id: string;
  lastName: string;
  org: string;
  orgRevisionId: string;
  orgRootShortName: string;
  posExecutive: string;
  posLevel: string;
  posLevelId: string;
  posNo: string;
  posType: string;
  posTypeId: string;
  position: string;
  prefix: string;
  rank: string;
  root: string;
  rootId: string;
}

export type {
  ResRound,
  ResDataCapacity,
  ResEvaluator,
  ResResults,
  ResRoundEvaluate,
  ResOrg,
  ResReport,
  ResPerson,
};
