import { defaultRequestClient } from '#/api/defaultRequest';
import { requestClient } from '#/api/request';

export const statisticsApi = {
  /**
   * 获取天医币报表
   * @param data 请求参数
   * @param data.month 月份
   * @param data.year 年份
   * @returns 天医币报表数据
   */
  getReportTianyibi: (data: { month: string; year: number | string }) => {
    return requestClient.post('common/statistics/pointStatistics', data);
  },

  /**
   * 获取实物报表
   * @param data 请求参数
   * @param data.month 月份
   * @param data.year 年份
   * @returns 实物报表数据
   */
  getPhysicalStatistics: (data: { month: string; year: number | string }) => {
    return requestClient.post('common/statistics/physicalStatistics', data);
  },

  /**
   * 获取培训班报表
   * @param data 请求参数
   * @param data.month 月份
   * @param data.year 年份
   * @returns 培训班报表数据
   */
  getTrainingClassStatistics: (data: { month: string; year: number | string }) => {
    return requestClient.post('common/statistics/trainingClassStatistics', data);
  },

  /**
   * 获取VIP报表
   * @param data 请求参数
   * @param data.month 月份
   * @param data.year 年份
   * @returns VIP报表数据
   */
  getVipStatistics: (data: { month: string; year: number | string }) => {
    return requestClient.post('common/statistics/vipStatistics', data);
  },

  /**
   * 获取课程报表
   * @param data 请求参数
   * @param data.month 月份
   * @param data.year 年份
   * @returns 课程报表数据
   */
  getCourseStatistics: (data: { month: string; year: number | string }) => {
    return requestClient.post('common/statistics/courseStatistics', data);
  },

  /**
   * 下载天医币报表
   * @param data 请求参数
   * @param data.month 月份
   * @param data.year 年份
   * @returns 天医币报表数据
   */
  downloadReportTianyibi: (data: { month: string; year: number | string }) => {
    return defaultRequestClient.download<Blob>('common/statistics/pointInfoExport', {
      data,
    });
  },
  /**
   * 下载实物报表
   * @param data 请求参数
   * @param data.month 月份
   * @param data.year 年份
   * @returns 实物报表数据
   */
  downloadReportPhysical: (data: { month: string; year: number | string }) => {
    return defaultRequestClient.download<Blob>('common/statistics/physicalInfoExport', {
      data,
    });
  },
  /**
   * 下载培训班报表
   * @param data 请求参数
   * @param data.month 月份
   * @param data.year 年份
   * @returns 培训班报表数据
   */
  downloadReportTrainingClass: (data: { month: string; year: number | string }) => {
    return defaultRequestClient.download<Blob>('common/statistics/trainingClassInfoExport', {
      data,
    });
  },
  /**
   * 下载VIP报表
   * @param data 请求参数
   * @param data.month 月份
   * @param data.year 年份
   * @returns VIP报表数据
   */
  downloadReportVip: (data: { month: string; year: number | string }) => {
    return defaultRequestClient.download<Blob>('common/statistics/vipInfoExport', {
      data,
    });
  },
  /**
   * 下载课程报表
   * @param data 请求参数
   * @param data.month 月份
   * @param data.year 年份
   * @returns 课程报表数据
   */
  downloadReportCourse: (data: { month: string; year: number | string }) => {
    return defaultRequestClient.download<Blob>('common/statistics/courseInfoExport', {
      data,
    });
  },

  /**
   * 获取月总结
   * @param data 月份 格式为YYYY-MM
   * @returns 月总结数据
   */
  getSumMonthStatistics: (data: string) => {
    return requestClient.post('common/statistics/getStatistics', { orderTime: data });
  },

  /**
   * 汇总导出
   * @param data 月份 格式为YYYY-MM
   * @param data.month 月份
   * @param data.year 年份
   * @returns 月总结数据
   */
  downloadSumMonthStatistics: (data: { month: string; year: number | string }) => {
    return defaultRequestClient.download<Blob>('common/statistics/statisticsInfoExport', {
      data,
    });
  },

  /**
   * 下载全部月份的收入统计报表
   * @returns 全部月份的收入统计报表数据
   */
  downloadAllMonthIncomeStatistics: () => {
    return defaultRequestClient.download<Blob>('common/statistics/getMonthStatistics', {
      data: {},
    });
  },
};
