/// 报告列表请求客户端

import { withPrefix } from "@/libs/url.lib";
import httpClient from "@/services/httpClient";
import type { CompanyAgg } from "@/types/company.types";
import type { ReportsResponse, ReportSaveRequest } from "@/types/report.types";
import type { Response } from "@/types/response.types";

const _url = withPrefix("/api/srUserReport")

export async function query(page: number, companyIds?: number[], field?: string, keyword?: string, status?: number, upChain?: number): Promise<ReportsResponse> {
  //const params: any = { page, companyIds, field, keyword }
  // if (companyId) {
  //   params['companyId'] = companyId;
  // }

  let param = ''
  if (companyIds && companyIds.length > 0) {
    param = companyIds.map((id: number) => `companyIds=${id}`).join('&');
  }
  if (field && keyword && keyword.length > 0 && field.length > 0) {
    param += `&field=${field}&keyword=${keyword}`
  }
  if (status || status == 0) {
    param += `&status=${status}`
  }
  if (upChain || upChain == 0) {
    param += `&upChain=${upChain}`
  }

  const resp = await httpClient.get<Response<ReportsResponse>>(_url(`/all/?current=${page}&${param}`))
  return resp.data.data
}

export async function upper(id: number): Promise<Blob> {
  const resp = await httpClient.get<File>(_url("/seveText"), { params: { id } })
  return resp.data;
}

/**
 * 通过报告ID获取报告数据
 * @param id 报告ID
 * @returns Promise
 */
export async function get(id: number): Promise<ReportSaveRequest> {
  const resp = await httpClient.get<Response<ReportSaveRequest>>(_url(`/${id}`))
  return resp.data.data;
}

export function link(reportId: number, token: string): string {
  return `/api/logo/${reportId}?token=${token}`
}