/**
 * 此处可直接引用自己项目封装好的 axios 配合后端联调
 */
import { request } from "./axios"; // 导入泛型 request 函数

// 1. 定义请求参数类型
interface ReqGetParams {
  captchaType: string;
  [key: string]: any;
}

interface ReqCheckParams {
  captchaType: string;
  pointJson: string;
  token: string;
  [key: string]: any;
}

// 2. 定义通用响应数据类型
interface ApiResponse<T = any> {
  repCode: string;
  repMsg: string;
  repData: T;
}

// 3. 利用泛型直接指定返回值类型，无需额外断言
export function reqGet(data: ReqGetParams): Promise<ApiResponse> {
  return request<ApiResponse>({ // 明确指定泛型类型为 ApiResponse
    url: '/captcha/get',
    method: 'post',
    data
  });
}

export function reqCheck(data: ReqCheckParams): Promise<ApiResponse> {
  return request<ApiResponse>({ // 明确指定泛型类型为 ApiResponse
    url: '/captcha/check',
    method: 'post',
    data
  });
}