import request from '@/utils/request'
import type { ApiResult } from '@/api/auth'

/** 行业树节点（二级） */
export interface IndustryChild {
  id: string
  name: string
  level: number
}

/** 行业树节点（一级，含子节点） */
export interface IndustryItem {
  id: string
  name: string
  level: number
  children: IndustryChild[]
}

/**
 * 获取行业树分类数据
 * GET /public/industries/tree
 * 返回一级二级嵌套的行业分类
 */
export function fetchIndustryTree() {
  return request.get<any, ApiResult<IndustryItem[]>>('/public/industries/tree')
}

// ==================== 岗位分类相关 ====================

/** 岗位树节点（三级 / 末级） */
export interface JobCategoryLeaf {
  id: string
  name: string
  level: number
}

/** 岗位树节点（二级，含三级子节点） */
export interface JobCategoryChild {
  id: string
  name: string
  level: number
  children: JobCategoryLeaf[]
}

/** 岗位树节点（一级，含二级子节点） */
export interface JobCategoryItem {
  id: string
  name: string
  level: number
  children: JobCategoryChild[]
}

/**
 * 获取岗位树分类数据
 * GET /public/job-categories/tree
 * 返回一级二级三级嵌套的岗位分类
 */
export function fetchJobCategoryTree() {
  return request.get<any, ApiResult<JobCategoryItem[]>>('/public/job-categories/tree')
}

// ==================== 地区分类相关 ====================

/** 地区树节点（三级 / 区县级） */
export interface RegionLeaf {
  code: string
  name: string
}

/** 地区树节点（二级 / 市级，可能含三级子节点） */
export interface RegionChild {
  code: string
  name: string
  children?: RegionLeaf[]
}

/** 地区树节点（一级 / 省级，含二级子节点） */
export interface RegionItem {
  code: string
  name: string
  children: RegionChild[]
}

/**
 * 获取地区树分类数据
 * GET /public/regions/tree
 * 返回省市区三级嵌套的地区分类
 */
export function fetchRegionTree() {
  return request.get<any, ApiResult<RegionItem[]>>('/public/regions/tree')
}
