# Inventario: módulos v2 vs tablas legado

Fecha de generación: auditoría implementada en repo `ticket/`. Objetivo: localizar lecturas/escrituras sobre `tickets`, `respuestas`, `ticket_etiquetas` y acoplamientos a `controlador/tickets.php` desde código v2.

## Cambios aplicados (implementación)
<!-- a -->
- **ticket2**: `acc=contactosxcliente` en [ticket/controlador/ticket2.php](controlador/ticket2.php) + `clsTicket2::listarContactosPorCliente`; [ticket/js/ticket2.js](js/ticket2.js) ya no llama a `controlador/tickets.php`.
- **TicketsxClientes2**: resumen solo desde `DEMO_TO_v2_ticket` + catálogos v2 ([ticket/clase/TicketsxClientes2.php](clase/TicketsxClientes2.php)).
- **Ticketsxetiquetas2**: resumen solo desde `DEMO_TO_v2_ticket`; CSV opcional vía columna `ticket_etiquetas` ([ticket/sql/alter_DEMO_TO_v2_ticket_ticket_etiquetas.sql](sql/alter_DEMO_TO_v2_ticket_ticket_etiquetas.sql)).
- **ticket2_full.php**: aviso `@deprecated` en cabecera ([ticket/inc/ticket2_full.php](inc/ticket2_full.php)).
- **Tickets-etiquetas dashboard**: tarjetas totalizadoras vía `obtenerResumenVistaV2()` (`DEMO_TO_v2_ticket`, solo padres); enlaces `?m=ticket-etiquetas-v2&tev2_card=…` filtran `#tev2_tabla_tickets` en la misma página; fallback `obtenerResumenLegacyVista()`. Bloque «Tickets en operación» sigue en `respuestas` (fase 2).
aa
## Resumen por módulo

| Módulo / ruta | Tabla legado `tickets` | `respuestas` | Otros | Notas post-cambio |
|---------------|------------------------|----------------|-------|-------------------|
| `ticket2` (help-t2) | No (persistencia `DEMO_TO_v2_ticket`) | No | `clientes`, `usuarios` (dimensión) | Contactos: `acc=contactosxcliente` en `ticket/controlador/ticket2.php` (antes `controlador/tickets.php`). |
| `TicketsxClientes2` (help-txc2) | **No** (antes `SELECT … FROM tickets`; ahora `DEMO_TO_v2_ticket`) | No | `clientes` | Etiquetas UI: mismos badges vía mapeo código→texto legado. |
| `Ticketsxetiquetas2` (help-txe2) | **No** (antes `FROM tickets`; ahora `DEMO_TO_v2_ticket`) | No | `DEMO_TO_tickets_etiquetas` (principal), `clientes` | CSV etiquetas: columna opcional `ticket_etiquetas` en v2 (ver `ticket/sql/alter_DEMO_TO_v2_ticket_ticket_etiquetas.sql`). |
| `Tickets-etiquetas` v2 (`ticket-etiquetas-v2`) | Sí (`sync_legacy_csv`, bloque operación legacy) | Sí (bloque operación) | `DEMO_TO_v2_ticket`, `DEMO_TO_v2_ticket_etiqueta_rel` | Listado + tarjetas desde v2; presets `filtro_preset` en API. |
| `ticket/inc/ticket2_full.php` | Sí (extenso) | Sí | `ticketsREG`, uploads | **Deprecado**: no referenciado por `admin.php` en `m=help-t2`; ver aviso en cabecera del archivo. |

## Búsqueda mecánica (archivos bajo `ticket/`)

### `FROM tickets` / `UPDATE tickets` / `INSERT INTO tickets`

| Archivo | R/W | Descripción breve |
|---------|-----|---------------------|
| [ticket/inc/ticket2_full.php](inc/ticket2_full.php) | R/W | Detalle legado, adjuntos, estados, etiquetas CSV, subtareas `ticket_idTicketMadre`. |
| [ticket/clase/Tickets-etiquetas.php](clase/Tickets-etiquetas.php) | R/W | `listarTicketsConEtiquetas` vía catálogo + rel; utilidades leen `tickets`; `sincronizarCsvLegacy` hace `UPDATE tickets`. |
| [ticket/main/Tickets-etiquetas.php](main/Tickets-etiquetas.php) | — | Solo plantilla; sin SQL directo. |

*(Tras el cambio: `TicketsxClientes2.php` y `Ticketsxetiquetas2.php` ya no aparecen en esta lista.)*

### `respuestas`

| Archivo | Uso |
|---------|-----|
| [ticket/clase/Tickets-etiquetas.php](clase/Tickets-etiquetas.php) | Consultas métricas / tiempo respuesta en flujos legacy. |
| [ticket/inc/ticket2_full.php](inc/ticket2_full.php) | Listados de respuestas por ticket. |

### `ticket/js` → `controlador/tickets.php`

| Archivo | Uso |
|---------|-----|
| [ticket/js/ticket2.js](js/ticket2.js) | ~~`contactosxcliente`~~ → ahora `ticket/controlador/ticket2.php?acc=contactosxcliente` (misma carga útil JSON). |

## Controlador `Tickets-etiquetas.php`: acciones (`acc`)

| `acc` | Clase | Toca legado |
|-------|--------|-------------|
| `listar_etiquetas` | `listarEtiquetas` | No directo sobre `tickets`. |
| `crear_etiqueta` / `editar_etiqueta` / `cambiar_estado_etiqueta` | CRUD etiquetas catálogo | No `tickets`. |
| `listar_tickets_completo` | `listarTicketsConEtiquetas` | Indirecto: catálogo + rel; legado en otros métodos de clase. |
| `asignar_etiqueta_ticket` / `quitar_etiqueta_ticket` | rel + catálogo | `ticketExiste` puede validar contra catálogo, no fila `tickets` única. |
| `reporte_tickets_por_etiqueta` | reporte | Catálogo + rel. |
| `sync_legacy_csv` | `sincronizarCsvLegacy` | **Sí**: `UPDATE tickets SET ticket_etiquetas`. Mantener como herramienta de migración explícita. |

## Próximos pasos sugeridos (fuera de este commit)

1. **Tickets-etiquetas**: definir si los listados de negocio pasan a 100% `DEMO_TO_tickets_catalogo` sin lecturas auxiliares a `tickets`.
2. **Etiquetas en fila v2**: poblar `DEMO_TO_v2_ticket.ticket_etiquetas` (CSV de `Id_ticketEtiqueta`) al guardar ticket en `clsTicket2` cuando exista la columna.
3. **help-rxm2**: incluir en este inventario cuando el código esté en el workspace.
