import fullDatabase from "@/data/brandlxft-business-roles-database.json";
import type { TaxonomyCategory, PriorityIndustry } from "@/lib/business-roles-taxonomy";

export type { TaxonomyBusinessType, TaxonomyCategory, PriorityIndustry } from "@/lib/business-roles-taxonomy";
export {
  TAXONOMY_CATEGORIES,
  getTaxonomyCategory,
  getBusinessTypesForCategory,
  getPriorityIndustries,
  resolveIndustrySelection,
  industryTaxonomy,
} from "@/lib/business-roles-taxonomy";
import { resolveIndustrySelection } from "@/lib/business-roles-taxonomy";

export interface RoleGroups {
  leadership: string[];
  revenue: string[];
  growth: string[];
  operations: string[];
  production: string[];
  compliance: string[];
  technology: string[];
}

export interface IndustryRecord {
  id: string;
  industry: string;
  category: string;
  roleGroups: RoleGroups;
  firstHire: string;
  nextHire: string;
  revenueDrivers: string[];
  growthBottlenecks: string[];
  typicalEmployeeRange: string;
  typicalRevenueRange: string;
  brandLxftUseCases: string[];
}

export const businessRolesDatabase = fullDatabase as {
  version: string;
  totalIndustries: number;
  categories: string[];
  industries: IndustryRecord[];
  taxonomy: TaxonomyCategory[];
  priorityIndustries: PriorityIndustry[];
};

export function getIndustryRecord(industryId: string): IndustryRecord | undefined {
  return businessRolesDatabase.industries.find((i) => i.id === industryId);
}

export function getIndustryRecordWithRoles(category: string, businessTypeLabel: string) {
  const match = resolveIndustrySelection(category, businessTypeLabel);
  if (!match) return null;
  return {
    ...match,
    roles: getIndustryRecord(match.industryId),
  };
}
