import { apiClient } from './api-client'; import type { z } from 'zod/v4'; import type { CabinetEventListResponseSchema, SpendingSummaryResponseSchema, } from '@meshitrack/shared'; type CabinetEventListResponse = z.infer; type SpendingSummaryResponse = z.infer; export async function listCabinetEvents( householdId: string, query?: { medicineId?: string; eventType?: string; startDate?: string; endDate?: string; cursor?: string; limit?: number; }, ): Promise { const params = new URLSearchParams(); if (query?.medicineId) params.set('medicineId', query.medicineId); if (query?.eventType) params.set('eventType', query.eventType); if (query?.startDate) params.set('startDate', query.startDate); if (query?.endDate) params.set('endDate', query.endDate); if (query?.cursor) params.set('cursor', query.cursor); if (query?.limit) params.set('limit', String(query.limit)); const qs = params.toString(); return apiClient.get( `/households/${householdId}/cabinet-events${qs ? `?${qs}` : ''}`, ); } export async function getEventsByItem( householdId: string, cabinetItemId: string, query?: { cursor?: string; limit?: number }, ): Promise { const params = new URLSearchParams(); if (query?.cursor) params.set('cursor', query.cursor); if (query?.limit) params.set('limit', String(query.limit)); const qs = params.toString(); return apiClient.get( `/households/${householdId}/cabinet-events/by-item/${cabinetItemId}${qs ? `?${qs}` : ''}`, ); } export async function getSpendingSummary( householdId: string, query?: { period?: string; medicineId?: string }, ): Promise { const params = new URLSearchParams(); if (query?.period) params.set('period', query.period); if (query?.medicineId) params.set('medicineId', query.medicineId); const qs = params.toString(); return apiClient.get( `/households/${householdId}/cabinet-events/spending-summary${qs ? `?${qs}` : ''}`, ); }