import request from '@/utils/request'
import type { ApiResult, PageResult } from '@/api'
import type { UserPointsLog } from './model'

/**
 * 用户积分统计数据
 */
export interface UserPointsInfo {
  points: number        // 当前积分
  totalEarned: number   // 累计获得
  totalUsed: number     // 累计使用
  expiringSoon: number  // 即将过期
}

/**
 * 获取用户积分信息（包含汇总统计）
 */
export async function getUserPointsInfo(): Promise<UserPointsInfo> {
  const res = await request.get<ApiResult<UserPointsInfo>>(
    '/user/points'
  )
  if (res.code === 0 && res.data) {
    return res.data
  }
  return Promise.reject(new Error(res.message))
}

/**
 * 分页查询用户积分日志
 */
export async function pageUserPointsLog(params?: {
  page?: number
  limit?: number
  type?: number
}): Promise<PageResult<UserPointsLog>> {
  const res = await request.get<ApiResult<PageResult<UserPointsLog>>>(
    '/shop/shop-user-points-log/page',
    params
  )
  if (res.code === 0 && res.data) {
    return res.data
  }
  return Promise.reject(new Error(res.message))
}
