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;
  isOfficer: boolean;
  children: OrgTree[];
}

interface DataPositionCondition {
  conditionReason: string;
  id: string;
  isCondition: boolean;
  orgShortname: string;
  posMasterNo: number;
  posMasterNoPrefix: string | null;
  posMasterNoSuffix: string | null;
  profilePosition: string;
  profilePoslevel: string;
  profilePostype: string;
  positions: Positions[];
}

interface Positions {
  id: string;
  posExecutiveName: string;
  posLevelName: string;
  posTypeName: string;
  positionArea: string;
  positionExecutiveField: string;
  positionField: string;
  positionName: string;
}

export type { OrgTree, DataPositionCondition };
