import request from './request'

/**
 * 统计相关 API
 * 注：统计接口定义在 TransactionRecordController 中
 */

/**
 * 获取月度统计数据
 * @param {Object} params - 查询参数
 * @param {number} params.year - 年份
 * @param {number} params.month - 月份
 * @returns {Promise<{success: boolean, data: Object}>}
 * @returns {Object} data.totalExpense - 总支出
 * @returns {Object} data.totalIncome - 总收入
 * @returns {Object} data.balance - 结余
 * @returns {Object} data.expenseCount - 支出笔数
 * @returns {Object} data.incomeCount - 收入笔数
 * @returns {Object} data.totalCount - 总笔数
 * @returns {Object} data.maxExpense - 最大单笔支出
 * @returns {Object} data.maxIncome - 最大单笔收入
 */
export const getMonthlyStatistics = (params) => {
  return request({
    url: '/TransactionRecord/GetMonthlyStatistics',
    method: 'get',
    params
  })
}

/**
 * 获取分类统计数据
 * @param {Object} params - 查询参数
 * @param {number} params.year - 年份
 * @param {number} params.month - 月份
 * @param {number} params.type - 交易类型 (0:支出, 1:收入, 2:不计入收支)
 * @returns {Promise<{success: boolean, data: Array}>}
 * @returns {Array} data - 分类统计列表
 * @returns {string} data[].classify - 分类名称
 * @returns {number} data[].amount - 金额
 * @returns {number} data[].percent - 百分比
 * @returns {number} data[].count - 交易笔数
 */
export const getCategoryStatistics = (params) => {
  return request({
    url: '/TransactionRecord/GetCategoryStatistics',
    method: 'get',
    params
  })
}

/**
 * 获取趋势统计数据
 * @param {Object} params - 查询参数
 * @param {number} params.startYear - 开始年份
 * @param {number} params.startMonth - 开始月份
 * @param {number} [params.monthCount=6] - 月份数量，默认6个月
 * @returns {Promise<{success: boolean, data: Array}>}
 * @returns {Array} data - 趋势统计列表
 * @returns {number} data[].year - 年份
 * @returns {number} data[].month - 月份
 * @returns {number} data[].expense - 支出金额
 * @returns {number} data[].income - 收入金额
 */
export const getTrendStatistics = (params) => {
  return request({
    url: '/TransactionRecord/GetTrendStatistics',
    method: 'get',
    params
  })
}

/**
 * 获取指定月份每天的消费统计
 * @param {Object} params - 查询参数
 * @param {number} params.year - 年份
 * @param {number} params.month - 月份
 * @returns {Promise<{success: boolean, data: Array}>}
 * @returns {Array} data - 每日统计列表
 * @returns {string} data[].date - 日期
 * @returns {number} data[].count - 交易笔数
 * @returns {number} data[].amount - 交易金额
 */
export const getDailyStatistics = (params) => {
  return request({
    url: '/TransactionRecord/GetDailyStatistics',
    method: 'get',
    params
  })
}
