Actividades Diarias
Endpoints para registrar y gestionar actividades diarias del usuario.
Modelos de Datos
Section titled “Modelos de Datos”DailyActivity
Section titled “DailyActivity”model DailyActivity { id String @id @default(cuid()) userProfileId String @map("user_profile_id") goalId String? @map("goal_id") status ActivityStatus @default(PENDING) activityDate DateTime @map("activity_date") valueAchieved Float? @map("value_achieved") notes String? wasFrozen Boolean @default(false) @map("was_frozen")
userProfile UserProfile @relation(fields: [userProfileId], references: [id], onDelete: Cascade) goal Goal? @relation(fields: [goalId], references: [id], onDelete: SetNull)
createdAt DateTime @default(now()) @map("created_at") updatedAt DateTime @updatedAt @map("updated_at")
@@unique([userProfileId, goalId, activityDate]) @@index([userProfileId, activityDate]) @@schema("gamification")}ActivityStatus (Enum)
Section titled “ActivityStatus (Enum)”enum ActivityStatus { PENDING COMPLETED FAILED SKIPPED FROZEN
@@schema("gamification")}Endpoints
Section titled “Endpoints”Obtener Actividades Diarias
Section titled “Obtener Actividades Diarias”Obtener actividades diarias con filtrado.
- URL:
/api/v1/gamification/activities - Método:
GET - Autenticación Requerida: Sí
Parámetros de Consulta (Opcionales)
Section titled “Parámetros de Consulta (Opcionales)”goalId: Filtrar por objetivo.status: Filtrar por estado.dateFrom: Fecha de inicio.dateTo: Fecha de fin.userProfileId: Filtrar por usuario Admin Staff
Respuesta
Section titled “Respuesta”{ "data": [ { "id": "...", "status": "COMPLETED", "activityDate": "2023-10-27T00:00:00Z", "valueAchieved": 5, "goal": { "id": "...", "title": "Daily Steps" } } ], "pagination": { "page": 1, "limit": 10, "total": 50, "totalPages": 5 }}Obtener Mis Actividades
Section titled “Obtener Mis Actividades”Obtener las actividades del usuario autenticado.
- URL:
/api/v1/gamification/activities/me - Método:
GET - Autenticación Requerida: Sí
Obtener Actividad por ID
Section titled “Obtener Actividad por ID”Obtener detalles de una actividad específica.
- URL:
/api/v1/gamification/activities/:id - Método:
GET - Autenticación Requerida: Sí
Crear Actividad Diaria
Section titled “Crear Actividad Diaria”Registrar una nueva actividad diaria.
- URL:
/api/v1/gamification/activities - Método:
POST - Autenticación Requerida: Sí
Cuerpo de Solicitud
Section titled “Cuerpo de Solicitud”{ "goalId": "goal_id_uuid", "activityDate": "2023-10-27T10:00:00Z", "valueAchieved": 5, "notes": "Completado con éxito", "wasFrozen": false}Actualizar Actividad Diaria
Section titled “Actualizar Actividad Diaria”Actualizar una actividad existente.
- URL:
/api/v1/gamification/activities/:id - Método:
PATCH - Autenticación Requerida: Sí (Propietario)
Cuerpo de Solicitud
Section titled “Cuerpo de Solicitud”{ "status": "COMPLETED", "valueAchieved": 10}Eliminar Actividad Diaria
Section titled “Eliminar Actividad Diaria”Eliminar una actividad.
- URL:
/api/v1/gamification/activities/:id - Método:
DELETE - Autenticación Requerida: Sí (Propietario)