import { apiClient } from './api-client'; import type { z } from 'zod/v4'; import type { RefillAlertResponseSchema, RefillListResponseSchema, RefillListListResponseSchema, AddToCabinetResponseSchema, CreateRefillListSchema, UpdateRefillListSchema, UpdateRefillListItemSchema, } from '@meshitrack/shared'; type RefillAlertResponse = z.infer; type RefillListResponse = z.infer; type RefillListListResponse = z.infer; type AddToCabinetResponse = z.infer; type CreateRefillListInput = z.infer; type UpdateRefillListInput = z.infer; type UpdateRefillListItemInput = z.infer; export async function getRefillAlerts( householdId: string, query?: { thresholdDays?: number; userId?: string }, ): Promise<{ data: RefillAlertResponse[] }> { const params = new URLSearchParams(); if (query?.thresholdDays) params.set('thresholdDays', String(query.thresholdDays)); if (query?.userId) params.set('userId', query.userId); const qs = params.toString(); return apiClient.get<{ data: RefillAlertResponse[] }>( `/households/${householdId}/refills/alerts${qs ? `?${qs}` : ''}`, ); } export async function listRefillLists( householdId: string, query?: { status?: string; cursor?: string; limit?: number }, ): Promise { const params = new URLSearchParams(); if (query?.status) params.set('status', query.status); 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}/refills/lists${qs ? `?${qs}` : ''}`, ); } export async function createRefillList( householdId: string, data: CreateRefillListInput, ): Promise { return apiClient.post(`/households/${householdId}/refills/lists`, data); } export async function getRefillList(householdId: string, id: string): Promise { return apiClient.get(`/households/${householdId}/refills/lists/${id}`); } export async function updateRefillList( householdId: string, id: string, data: UpdateRefillListInput, ): Promise { return apiClient.patch( `/households/${householdId}/refills/lists/${id}`, data, ); } export async function updateRefillListItem( householdId: string, listId: string, itemId: string, data: UpdateRefillListItemInput, ): Promise { return apiClient.patch( `/households/${householdId}/refills/lists/${listId}/items/${itemId}`, data, ); } export async function addToCabinet( householdId: string, listId: string, ): Promise { return apiClient.post( `/households/${householdId}/refills/lists/${listId}/add-to-cabinet`, {}, ); }