import type { CreateWishInput, UpdateWishInput, Wish, WishStatus, } from '@family-wishlist/shared'; import { api } from '@/lib/api'; export type WishWithOwnerBadge = Wish & { isNewForOwner?: boolean }; export type OwnerStatus = 'active' | 'archived' | 'completed' | 'deleted'; export const wishesApi = { list: (status: OwnerStatus) => api.get(`/api/wishes?status=${status}`), get: (id: string) => api.get(`/api/wishes/${id}`), create: (input: CreateWishInput) => api.post('/api/wishes', input), update: (id: string, input: UpdateWishInput) => api.patch(`/api/wishes/${id}`, input), remove: (id: string) => api.delete(`/api/wishes/${id}`), archive: (id: string) => api.post(`/api/wishes/${id}/archive`), complete: (id: string) => api.post(`/api/wishes/${id}/complete`), restore: (id: string) => api.post(`/api/wishes/${id}/restore`), duplicate: (id: string) => api.post(`/api/wishes/${id}/duplicate`), uploadImage: (id: string, file: File) => { const fd = new FormData(); fd.append('file', file, file.name); return api.upload(`/api/wishes/${id}/image`, fd); }, refreshOg: (id: string) => api.post(`/api/wishes/${id}/image/refresh-og`), deleteImage: (id: string) => api.delete(`/api/wishes/${id}/image`), }; export function statusToQuery(s: WishStatus): OwnerStatus { return s.toLowerCase() as OwnerStatus; }