import { request } from '@/utils/request'
import type { PageResult } from '@/types/common'
import type { FavoriteItem } from '@/types/favorite'

/**
 * 分页获取收藏列表
 * GET /api/favorite?current=&size=（需登录）
 */
export function getFavoriteListApi(current = 1, size = 10) {
  return request<PageResult<FavoriteItem>>({
    url: '/api/favorite',
    method: 'GET',
    params: { current, size }
  })
}

/**
 * 添加收藏
 * POST /api/favorite/{productId}（需登录）
 */
export function addFavoriteApi(productId: number) {
  return request<void>({
    url: `/api/favorite/${productId}`,
    method: 'POST'
  })
}

/**
 * 取消收藏（按收藏记录 ID）
 * DELETE /api/favorite/{favoriteId}（需登录）
 */
export function cancelFavoriteApi(favoriteId: number) {
  return request<void>({
    url: `/api/favorite/${favoriteId}`,
    method: 'DELETE'
  })
}

/**
 * 取消收藏（按商品 ID）
 * DELETE /api/favorite/product/{productId}（需登录）
 */
export function cancelFavoriteByProductIdApi(productId: number) {
  return request<void>({
    url: `/api/favorite/product/${productId}`,
    method: 'DELETE'
  })
}

/**
 * 检查是否已收藏
 * GET /api/favorite/check?productId=（需登录）
 */
export function checkFavoriteApi(productId: number) {
  return request<boolean>({
    url: '/api/favorite/check',
    method: 'GET',
    params: { productId }
  })
}

/**
 * 获取收藏数量
 * GET /api/favorite/count（需登录）
 */
export function getFavoriteCountApi() {
  return request<number>({
    url: '/api/favorite/count',
    method: 'GET'
  })
}
