import request from '@/utils/request' import type { ShopGoodsFavorite, ShopGoodsFavoriteParam } from './model' /** * 解包 API 响应 * request 工具默认 returnRaw=true,返回完整 {code, message, data} 包装 * 此函数提取内层 data 字段,兼容 data 为 null/undefined 的情况 */ function unwrap(res: any): T { if (res && typeof res === 'object' && 'data' in res) { return res.data as T } return res as T } // 添加收藏 export async function addShopGoodsFavorite(data: { goodsId: number }) { const res = await request.post('/shop/goods/favorite/add', data) return unwrap(res) } // 取消收藏 export async function removeShopGoodsFavorite(data: { goodsId: number }) { const res = await request.post('/shop/goods/favorite/remove', data) return unwrap(res) } // 查询收藏状态(返回 boolean:true=已收藏, false=未收藏) export async function getShopGoodsFavoriteStatus(params: { goodsId: number }) { const res = await request.get('/shop/goods/favorite/status', params) return !!unwrap(res) // 确保返回纯布尔值 } // 收藏列表 export async function listShopGoodsFavorite(params: ShopGoodsFavoriteParam) { const res = await request.get('/shop/goods/favorite/list', params) return unwrap(res) || [] } // 收藏列表(分页) export async function pageShopGoodsFavorite(params: ShopGoodsFavoriteParam) { const res = await request.get('/shop/goods/favorite/page', params) return unwrap<{ list: ShopGoodsFavorite[]; total: number }>(res) || { list: [], total: 0 } }