Objetivos Nutricionales
Endpoints para gestionar objetivos nutricionales y ver estadísticas.
Modelos de Datos
Section titled “Modelos de Datos”El siguiente modelo de Prisma pertenece al schema nutrition:
NutritionGoal
Section titled “NutritionGoal”model NutritionGoal { id String @id @default(cuid()) userProfileId String @map("user_profile_id")
dailyCalories Int? @map("daily_calories") dailyProtein Float? @map("daily_protein") dailyCarbs Float? @map("daily_carbs") dailyFat Float? @map("daily_fat") dailyFiber Float? @map("daily_fiber") dailyWater Float? @map("daily_water")
isActive Boolean @default(true) @map("is_active") autoCalculated Boolean @default(false) @map("auto_calculated")
notes String? lastUpdatedBy String? @map("last_updated_by")
userProfile UserProfile @relation(fields: [userProfileId], references: [id], onDelete: Cascade)
createdAt DateTime @default(now()) @map("created_at") updatedAt DateTime @updatedAt @map("updated_at")
@@unique([userProfileId]) @@map("nutrition_goals") @@schema("nutrition")}Endpoints
Section titled “Endpoints”Obtener Objetivo Nutricional
Section titled “Obtener Objetivo Nutricional”Obtener el objetivo nutricional del usuario.
- URL:
/api/v1/nutrition/goals - Método:
GET - Autenticación Requerida: Sí
Descripción Interna
Section titled “Descripción Interna”Obtiene el objetivo nutricional del usuario. Lanza 404 si no existe.
Respuesta
Section titled “Respuesta”{ "data": { "id": "...", "dailyCalories": 2000, "dailyProtein": 100, "dailyCarbs": 250, "dailyFat": 65, "dailyWater": 2000, "isActive": true }}Crear/Actualizar Objetivo Nutricional
Section titled “Crear/Actualizar Objetivo Nutricional”Crear o actualizar el objetivo nutricional del usuario.
- URL:
/api/v1/nutrition/goals - Método:
POST - Autenticación Requerida: Sí
Descripción Interna
Section titled “Descripción Interna”Crea o actualiza el objetivo nutricional:
- Verifica si existe objetivo para el usuario
- Si existe: Actualiza con los nuevos valores
- Si no existe: Crea nuevo objetivo
Cuerpo de Solicitud
Section titled “Cuerpo de Solicitud”{ "dailyCalories": 2000, "dailyProtein": 100, "dailyCarbs": 250, "dailyFat": 65, "dailyWater": 2000}Obtener Estadísticas Nutricionales
Section titled “Obtener Estadísticas Nutricionales”Obtener estadísticas nutricionales para el usuario.
- URL:
/api/v1/nutrition/stats - Método:
GET - Autenticación Requerida: Sí
Descripción Interna
Section titled “Descripción Interna”Este endpoint calcula estadísticas nutricionales:
-
Obtiene meal logs en el rango de fechas
-
Suma totales de todas las food entries:
- Calorías, proteínas, carbohidratos, grasas
-
Calcula promedios por número de meal logs
-
Obtiene objetivo nutricional si existe
-
Suma consumo de agua en el período
-
Retorna:
- Totales y promedios
- Objetivos (si configurados)
- Conteo de comidas
Parámetros de Consulta de Solicitud
Section titled “Parámetros de Consulta de Solicitud”startDate: Fecha de inicioendDate: Fecha de fin
Respuesta
Section titled “Respuesta”{ "data": { "period": { "startDate": "...", "endDate": "..." }, "totals": { "calories": 15000, "protein": 750, "carbs": 1500, "fat": 500, "water": 14000 }, "averages": { "calories": 2142, "protein": 107 }, "goals": { "dailyCalories": 2000, "dailyProtein": 100 }, "mealCount": 7 }}Obtener Resumen Semanal
Section titled “Obtener Resumen Semanal”Obtener resumen nutricional para la semana actual.
- URL:
/api/v1/nutrition/stats/weekly - Método:
GET - Autenticación Requerida: Sí
Obtener Resumen Mensual
Section titled “Obtener Resumen Mensual”Obtener resumen nutricional para el mes actual.
- URL:
/api/v1/nutrition/stats/monthly - Método:
GET - Autenticación Requerida: Sí