import apiClient from './client'; export type ActivityType = 'feeding' | 'sleep' | 'diaper' | 'medication' | 'milestone' | 'note'; export interface Activity { id: string; childId: string; type: ActivityType; timestamp: string; data: any; notes?: string; loggedBy: string; createdAt: string; } export interface CreateActivityData { type: ActivityType; timestamp: string; data: any; notes?: string; } export interface UpdateActivityData extends Partial {} export interface DailySummary { date: string; feedingCount: number; sleepTotalMinutes: number; diaperCount: number; activities: Activity[]; } export const trackingApi = { // Get all activities for a child getActivities: async ( childId: string, type?: ActivityType, startDate?: string, endDate?: string ): Promise => { const params: any = { childId }; if (type) params.type = type; if (startDate) params.startDate = startDate; if (endDate) params.endDate = endDate; const response = await apiClient.get('/api/v1/activities', { params }); return response.data.data.activities; }, // Get a specific activity getActivity: async (id: string): Promise => { const response = await apiClient.get(`/api/v1/activities/${id}`); return response.data.data.activity; }, // Create a new activity createActivity: async (childId: string, data: CreateActivityData): Promise => { const response = await apiClient.post(`/api/v1/activities?childId=${childId}`, data); return response.data.data.activity; }, // Update an activity updateActivity: async (id: string, data: UpdateActivityData): Promise => { const response = await apiClient.patch(`/api/v1/activities/${id}`, data); return response.data.data.activity; }, // Delete an activity deleteActivity: async (id: string): Promise => { await apiClient.delete(`/api/v1/activities/${id}`); }, // Get daily summary getDailySummary: async (childId: string, date: string): Promise => { const response = await apiClient.get('/api/v1/activities/daily-summary', { params: { childId, date }, }); return response.data.data; }, };