import request from '@/utils/request';

// =================== 供应商年度模板管理 ===================

/**
 * 获取供应商年度模板列表
 * @param params 查询参数
 * @returns Promise
 */
export async function getAnnualTemplateList(params: supplierAnnualTemplateManage.TemplateRequest) {
  return request<supplierAnnualTemplateManage.TemplateResponse>('/annualreview/template/getPage', {
    method: 'POST',
    data: params,
  });
}

/**
 * 获取所有供应商年度模板列表
 * @returns Promise
 */
export async function getAllAnnualTemplates() {
  return request<supplierAnnualTemplateManage.AllTemplatesResponse>('/annualreview/template/getAllList', {
    method: 'GET',
  });
}

/**
 * 新增供应商年度模板
 * @param params 模板数据
 * @returns Promise
 */
export async function addAnnualTemplate(params: supplierAnnualTemplateManage.AddTemplateRequest) {
  return request<supplierAnnualTemplateManage.ApiResponse>('/annualreview/template', {
    method: 'POST',
    data: params,
  });
}

/**
 * 更新供应商年度模板
 * @param params 模板数据
 * @returns Promise
 */
export async function updateAnnualTemplate(params: supplierAnnualTemplateManage.AddTemplateRequest) {
  return request<supplierAnnualTemplateManage.ApiResponse>('/annualreview/template', {
    method: 'PUT',
    data: params,
  });
}

/**
 * 获取供应商年度模板详情
 * @param id 模板ID
 * @returns Promise
 */
export async function getAnnualTemplateDetail(id: string) {
  return request<supplierAnnualTemplateManage.TemplateDetailResponse>(`/annualreview/template/${id}`, {
    method: 'GET',
  });
}

/**
 * 启用供应商年度模板
 * @param id 模板ID
 * @returns Promise
 */
export async function enableAnnualTemplate(id: string) {
  return request<supplierAnnualTemplateManage.ApiResponse>('/annualreview/template/up', {
    method: 'POST',
    data: { id },
  });
}

/**
 * 禁用供应商年度模板
 * @param id 模板ID
 * @returns Promise
 */
export async function disableAnnualTemplate(id: string) {
  return request<supplierAnnualTemplateManage.ApiResponse>('/annualreview/template/down', {
    method: 'POST',
    data: { id },
  });
}

// =================== 供应商年度审查模块 ===================

/**
 * 获取供应商年度审查列表
 * @param params 查询参数
 * @returns Promise
 */
export async function getAnnualReviewList(params: supplierAnnualReview.ReviewListRequest) {
  return request<supplierAnnualReview.ReviewListResponse>('/annualreview/user/getPage', {
    method: 'POST',
    data: params,
  });
}

/**
 * 获取供应商年度审查详情
 * @param id 审查ID
 * @returns Promise
 */
export async function getAnnualReviewDetail(id: string) {
  return request<supplierAnnualReview.ReviewDetailResponse>(`/annualreview/user/${id}`, {
    method: 'GET',
  });
}

/**
 * 提交供应商年度审查打分
 * @param params 打分数据
 * @returns Promise
 */
export async function submitAnnualReviewScore(params: supplierAnnualReview.ScoreRequest) {
  return request<supplierAnnualReview.ApiResponse>('/annualreview/user/addScore', {
    method: 'POST',
    data: params,
  });
}

// =================== 供应商年度结果模块 ===================

/**
 * 获取供应商年度结果任务列表（一级列表）
 * @param params 查询参数
 * @returns Promise
 */
export async function getAnnualResultTaskList(params: supplierAnnualResult.TaskListRequest) {
  return request<supplierAnnualResult.TaskListResponse>('/annualreview/task/getPage', {
    method: 'POST',
    data: params,
  });
}

/**
 * 获取供应商列表（二级列表）
 * @param params 查询参数
 * @returns Promise
 */
export async function getAnnualResultSupplierList(params: supplierAnnualResult.SupplierListRequest) {
  return request<supplierAnnualResult.SupplierListResponse>('/system/supplier/getPage', {
    method: 'POST',
    data: params,
  });
}

/**
 * 获取供应商审查列表（三级列表）
 * @param params 查询参数
 * @returns Promise
 */
export async function getAnnualResultReviewList(params: supplierAnnualResult.ReviewListRequest) {
  return request<supplierAnnualResult.ReviewListResponse>('/annualreview/user/getPage', {
    method: 'POST',
    data: params,
  });
}

/**
 * 获取供应商审查详情
 * @param id 审查ID
 * @returns Promise
 */
export async function getAnnualResultReviewDetail(id: string) {
  return request<supplierAnnualResult.ReviewDetailResponse>(`/annualreview/user/${id}`, {
    method: 'GET',
  });
}

// 以下是旧的API函数，可以暂时保留，后续需要确认是否废弃
// 获取供应商年度结果列表
export async function getAnnualResultList(params: any) {
  return request<any>('/annualreview/result/getPage', {
    method: 'POST',
    data: params,
  });
}

// 获取年度统计列表
export async function getAnnualYearStatsList(params: any) {
  return request<any>('/annualreview/result/getYearStats', {
    method: 'POST',
    data: params,
  });
}

// 获取供应商年度结果详情
export async function getAnnualResultDetail(id: string) {
  return request<any>(`/annualreview/result/${id}`, {
    method: 'GET',
  });
}
