# Modulo 8 Operacion (Actividades y Seguimiento)

## Alcance
- Registro de actividades comerciales y operativas.
- Seguimiento por estado, prioridad y vencimiento.
- Asociacion de actividad a contacto/lead/oportunidad/cuenta.
- Recordatorios y despacho programado.
- Calendario de actividades por ventana.
- SLA con alertas (warning/breach).
- Recurrencia para seguimientos repetitivos.
- Cola diaria y reasignacion por carga.
- Plantillas por contexto comercial.
- Comentarios, adjuntos y webhooks.
- Dashboard ejecutivo con snapshots diarios.

## Preparacion
- Ejecutar migracion:
- `018_activities_followup.sql`

## Flujo recomendado
1. Crear actividad con `title`, `type`, `assigned_to` y `due_at`.
2. Avanzar estado a `in_progress` al iniciar.
3. Marcar `done` al completar (se registra historial).
4. Agregar recordatorio si la actividad requiere seguimiento.
5. Ejecutar cron de recordatorios.

## Endpoints web
- `POST /activities/create?tenant={slug}`
- `POST /activities/status?tenant={slug}`
- `POST /activities/reminder/add?tenant={slug}`
- `POST /activities/cancel-reason/create?tenant={slug}`
- `POST /activities/sla-rule/save?tenant={slug}`

## API v1
- `GET /api/v1/activities?tenant={slug}&status=&assigned_to=&page=1&q=`
- `GET /api/v1/activities/kpis?tenant={slug}`
- `GET /api/v1/activities/reminders?tenant={slug}`
- `GET /api/v1/activities/calendar?tenant={slug}&from=YYYY-MM-DD HH:MM:SS&to=YYYY-MM-DD HH:MM:SS`
- `GET /api/v1/activities/queue?tenant={slug}`
- `GET /api/v1/activities/compliance?tenant={slug}`
- `GET /api/v1/activities/dashboard?tenant={slug}`
- `GET /api/v1/activities/cancel-reasons?tenant={slug}`
- `GET /api/v1/activities/sla-rules?tenant={slug}`
- `GET /api/v1/activities/templates?tenant={slug}`
- `GET /api/v1/activities/comments?tenant={slug}&activity_id={id}`
- `GET /api/v1/activities/attachments?tenant={slug}&activity_id={id}`
- `GET /api/v1/activities/webhooks?tenant={slug}`
- `POST /api/v1/activities?tenant={slug}`
- `POST /api/v1/activities/status?tenant={slug}`
- `POST /api/v1/activities/reminders?tenant={slug}`
- `POST /api/v1/activities/reminders/dispatch?tenant={slug}`
- `POST /api/v1/activities/cancel-reasons?tenant={slug}`
- `POST /api/v1/activities/sla-rules?tenant={slug}`
- `POST /api/v1/activities/sla/monitor?tenant={slug}`
- `POST /api/v1/activities/recurrence/rules?tenant={slug}`
- `POST /api/v1/activities/recurrence/expand?tenant={slug}`
- `POST /api/v1/activities/reassign?tenant={slug}`
- `POST /api/v1/activities/templates?tenant={slug}`
- `POST /api/v1/activities/template/apply?tenant={slug}`
- `POST /api/v1/activities/comments?tenant={slug}`
- `POST /api/v1/activities/attachments?tenant={slug}`
- `POST /api/v1/activities/webhooks?tenant={slug}`
- `POST /api/v1/activities/webhooks/dispatch?tenant={slug}`

## Cron recomendado
- `POST /cron/activities-reminders?tenant={slug}`
- `POST /cron/activities-sla?tenant={slug}`
- `POST /cron/activities-recurrence?tenant={slug}`
- `POST /cron/activities-reassign?tenant={slug}`
- `POST /cron/activities-snapshot?tenant={slug}`

## Cierre al 100 (5 puntos)
1. Integridad de flujo:
- Dependencias bloquean avance de estado hasta cumplir prerequisitos.
- Movimiento de oportunidad en pipeline dispara automatizaciones de actividades por etapa.
2. Adopcion operativa:
- Adjuntos de actividades habilitados en web (`/activities/attachment/upload`) y API (`/api/v1/activities/attachments`).
3. Salud de ejecucion:
- Cron de SLA, recurrencia, reasignacion y snapshot ejecutan sin errores.
4. Evidencia de calidad:
- Ejecutar `php tests/module8_closure_smoke.php` y exigir resultado `Module8 closure smoke OK`.
5. Checklist de salida:
- Verificar API docs, runbook y README alineados con rutas reales.
