My Planner

Documentación de la API REST

Base: https://monteroz.com/api

Formato de respuesta

Todas las respuestas usan una envoltura común:

Éxito: { "success": true, "data": … , "meta": { … } }
Error:  { "success": false, "error": { "message": "…", "fields": { … } } }
Autenticación
Actualmente por sesión de cookie: autentícate con POST /api/login y reutiliza la cookie. La autenticación por token Bearer está prevista como siguiente paso (la tabla personal_access_tokens ya existe); los endpoints marcados con auth requieren sesión.

Sistema

GET /api/health
Estado del servicio y la base de datos.
GET /api/docs
Este catálogo de endpoints (JSON).

Autenticación

POST /api/login
Inicia sesión (cookie de sesión).
POST /api/register
Crea una cuenta.
GET /api/me auth
Usuario autenticado.
POST /api/logout
Cierra la sesión.

Mesas

GET /api/mesas
Listado público paginado (?page,?per_page,?q).
GET /api/mesas/{slug}
Detalle de una mesa (respeta privacidad).
GET /api/mesas/{slug}/publicaciones
Publicaciones de la mesa (?page).
GET /api/mesas/{slug}/objetivos
Objetivos aprobados (cronograma).
GET /api/mesas/{slug}/chat auth
Mensajes del chat flotante grupal de la mesa.
POST /api/mesas/{slug}/chat auth
Envía un mensaje al chat de la mesa. Body: {"body"}.

Publicaciones

GET /api/publicaciones/{id}
Detalle de una publicación con adjuntos.

Búsqueda

GET /api/buscar
Búsqueda global (?q) en usuarios, mesas, publicaciones y etiquetas.

Notificaciones

GET /api/notificaciones auth
Lista + conteo no leído.
GET /api/notificaciones/no-leidas auth
Solo el conteo no leído.
POST /api/notificaciones/{id}/leer auth
Marca una notificación como leída.
POST /api/notificaciones/leer-todas auth
Marca todas como leídas.

Agenda personal

GET /api/agenda auth
Eventos del usuario en un rango de fechas (?start,?end, AAAA-MM-DD).
POST /api/agenda auth
Crea un evento. Body: {"title","event_date","event_time"?}.
DELETE /api/agenda/{id} auth
Elimina un evento propio.

Chat privado (panel de inicio)

GET /api/chat/con/{username} auth
Mensajes de la conversación privada con ese usuario (la crea si no existe).
POST /api/chat/con/{username} auth
Envía un mensaje privado. Body: {"body"}.

Versión legible por máquina: GET /api/docs