import { LanguageTypes } from "@/validations/mutual/language/validations";

interface Company {
  uu_id: string;
  public_name: string;
  company_type?: string;
  company_address?: any;
  duty?: string;
}

interface Occupant {
  build_living_space_uu_id: string;
  part_uu_id: string;
  part_name: string;
  part_level: number;
  occupant_uu_id: string;
  description: string;
  code: string;
}

interface Building {
  build_uu_id: string;
  build_name: string;
  build_no: string;
  occupants: Occupant[];
}

interface BuildingMap {
  [key: string]: Building;
}

interface SelectListProps {
  selectionList: Company[] | BuildingMap;
  isEmployee: boolean;
  isOccupant: boolean;
  language: LanguageTypes;
  query?: { [key: string]: string | string[] | undefined };
}

interface LoginOccupantProps {
  selectionList: BuildingMap;
  translation: any;
  lang: LanguageTypes;
}

interface LoginEmployeeProps {
  selectionList: Company[];
  translation: any;
  lang: LanguageTypes;
}

export type {
  Company,
  Occupant,
  Building,
  BuildingMap,
  SelectListProps,
  LoginOccupantProps,
  LoginEmployeeProps,
};
