import type { DiscoveryEvent } from '@/services/discovery' import axiosInstance from '@/config/axios' import { parseRemittanceList, unwrapApiPayload } from '@/helpers/listResponse' export const getBookmarkStatus = async (eventId: string): Promise => { const response = await axiosInstance.get(`events/${eventId}/bookmark`) return Boolean(unwrapApiPayload(response.data)?.isBookmarked) } export const getBookmarkStatuses = async (eventIds: string[]): Promise> => { if (eventIds.length === 0) return new Set() const response = await axiosInstance.post('events/bookmarks/status', { eventIds }) const payload = unwrapApiPayload<{ bookmarkedEventIds?: string[] }>(response.data) const ids = payload.bookmarkedEventIds return new Set(Array.isArray(ids) ? ids : []) } export const bookmarkEvent = async (eventId: string): Promise => { await axiosInstance.post(`events/${eventId}/bookmark`) } export const removeEventBookmark = async (eventId: string): Promise => { await axiosInstance.delete(`events/${eventId}/bookmark`) } export const getBookmarkedEvents = async (page = 1, pageSize = 40) => { const response = await axiosInstance.get('events/bookmarks', { params: { page, pageSize, sort: '-createdAt' } }) const { items, pagination } = parseRemittanceList(unwrapApiPayload(response.data) ?? response.data) return { items, totalItemsCount: pagination.totalItemsCount } }