// 导入请求客户端
import { requestClient } from '#/api/request';

// API前缀：保健食品管理接口路径
const prefix = 'health-food/';

/**
 * 分页查询保健食品列表
 * @param data - 查询参数对象，包含分页信息和其他筛选条件
 * @returns 返回保健食品列表数据
 */
export async function getHealthFoodList(data: any) {
  return requestClient.get<any>(`${prefix}list`, { params: data });
}

/**
 * 获取保健食品下拉选项列表
 * 用于下拉选择框等场景
 * @param data - 查询参数对象
 * @returns 返回保健食品选项列表
 */
export async function getHealthFoodOption(data: any) {
  return requestClient.get<any>(`${prefix}option`, { params: data });
}

/**
 * 获取保健食品详情
 * @param id - 保健食品ID
 * @returns 返回保健食品详细信息
 */
export async function getHealthFoodInfo(id: number) {
  return requestClient.get<any>(`${prefix}detail`, { params: { id } });
}

/**
 * 导出保健食品数据
 * 将保健食品数据导出为Excel文件
 * @returns 返回Excel文件数据流
 */
export async function exportHealthFoodApi() {
  return requestClient.download(`${prefix}export`);
}

/**
 * 新增保健食品
 * @param data - 保健食品数据对象，包含所有必填字段
 * @returns 返回创建结果
 */
export async function createHealthFood(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}create`, data);
}

/**
 * 编辑保健食品
 * @param data - 保健食品数据对象，必须包含id字段
 * @returns 返回更新结果
 */
export async function updateHealthFood(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}update`, data);
}

/**
 * 删除保健食品
 * @param data - 删除参数对象，包含ids数组（要删除的保健食品ID列表）
 * @returns 返回删除结果
 */
export async function deleteHealthFood(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}delete`, data);
}

/**
 * 导入保健食品数据
 * 通过Excel文件批量导入保健食品数据
 * @param data - 上传参数对象，包含file字段（Excel文件）
 * @returns 返回导入结果
 */
export async function importHealthFoodApi(data: Record<string, any>) {
  return requestClient.upload(`${prefix}import`, data);
}

/**
 * 更新保健食品分区分类
 * @param data - 包含id、zone_id和category_id的对象
 * @returns 返回更新结果
 */
export async function updateZoneCategory(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}update-zone-category`, data);
}