import api from "./client"; import type { GroupMeeting, MeetingReminder, NotificationPreferences, PaceStatus, ReadingGroup, } from "../types/notifications"; export const groupsApi = { async getPaceStatus(ebookId?: number): Promise { const params: Record = {}; if (ebookId) params.ebook_id = String(ebookId); const { data } = await api.get("/groups/notifications/pace/", { params }); return data; }, async getPreferences(): Promise { const { data } = await api.get("/groups/notifications/preferences/"); return data; }, async updatePreferences( prefs: Partial, ): Promise { const { data } = await api.patch( "/groups/notifications/preferences/", prefs, ); return data; }, async dismissPaceNotification(meetingId: number, ebookId: number): Promise { await api.post("/groups/notifications/dismiss/", { meeting_id: meetingId, ebook_id: ebookId, }); }, async getReminders(): Promise { const { data } = await api.get("/groups/notifications/reminders/"); return data; }, async getGroups(): Promise { const { data } = await api.get<{ count: number; results: ReadingGroup[] } | ReadingGroup[]>( "/groups/groups/", ); if (Array.isArray(data)) return data; return data.results ?? []; }, async getUpcomingMeetings(): Promise { const { data } = await api.get("/groups/meetings/upcoming/"); return data; }, };