# Checklist Cierre Modulo 5 (Empresas/Cuentas y Contactos 360)

## Preparacion
- Ejecutar migracion `012_accounts_contacts_360.sql`.
- Ejecutar migracion `013_module5_enterprise_extensions.sql`.
- Confirmar acceso a `dashboard?tenant=demo&module=contacts`.

## CRUD base
- Crear cuenta.
- Crear contacto vinculado a cuenta.
- Editar contacto y cuenta.
- Eliminar/restore contacto (soft delete).
- Eliminar/restore cuenta (soft delete).

## Etiquetas y custom fields
- Crear etiqueta.
- Asignar etiqueta a contacto.
- Asignar etiqueta a cuenta.
- Crear custom field para `contact`.
- Crear custom field para `account`.
- Guardar valores custom field.

## Historial 360
- Registrar interaccion (call/email/meeting/note/whatsapp).
- Subir adjunto.
- Crear nota (con @mencion).
- Crear tarea y cambiar estado.
- Verificar timeline 360 con interacciones/notas/eventos/tareas.

## Segmentacion
- Crear segmento con criterio JSON.
- Ejecutar rebuild de segmento.
- Verificar miembros del segmento.

## Dedupe y merge
- Ejecutar escaneo de duplicados.
- Confirmar candidatos detectados.
- Ejecutar merge principal/duplicado.
- Verificar:
  - contacto duplicado en soft delete,
  - relink de actividades/tags/oportunidades/tareas/notas,
  - registro en `contact_merge_log`.

## Multi-cuenta por contacto
- Vincular contacto a cuenta secundaria.
- Marcar cuenta primaria.
- Desvincular cuenta.

## Importacion y sync
- Ejecutar import mock desde UI.
- Validar `contact_import_jobs`.
- Validar `contact_import_rows`.
- Registrar sync log manual.
- Validar `contact_sync_logs`.

## KPIs
- Revisar KPIs de modulo (totales, score promedio, tareas vencidas).
- Revisar endpoint API de KPIs.

## API v1
- `GET /api/v1/contacts?tenant=demo`
- `GET /api/v1/contacts/360?tenant=demo&contact_id={id}`
- `GET /api/v1/contacts/kpis?tenant=demo`
- `GET /api/v1/contacts/segments?tenant=demo`
- `GET /api/v1/contacts/dedupe?tenant=demo`
- `GET /api/v1/contacts/tasks?tenant=demo`
- `POST /api/v1/contacts/dedupe/scan?tenant=demo`
- `POST /api/v1/contacts/dedupe/merge?tenant=demo`

## Seguridad y aislamiento tenant
- Repetir pruebas en dos tenants diferentes.
- Verificar que no hay fuga de registros entre tenants.

## Smoke test
- Ejecutar `php tests/module5_closure_smoke.php`.
