# Quickstart: Contratos Unicliente (UniPunto y MultiPuntos)

**Feature**: `005-contratos-unicliente-detalle`

## Prerequisitos

1. Conexión secundaria operativa configurada (`agent_db_secondary`) con datos de contratos `TipProCom` 1 y 2, clientes, puntos de suministro, CUPS y tarifas poblados.
2. Capacidad `agent_database` habilitada:

```dotenv
AGENT_CAPABILITY_AGENT_DATABASE=true
```

3. (Opcional) Límite dedicado de filas para esta herramienta (NO el tope de 50):

```dotenv
AGENT_CONTRATOS_UNICLIENTE_MAX_ROWS=500
```

4. Tras editar `config/agent.php`, invalidar la cache del catálogo:

```bash
php artisan cache:forget agent_database_queries_catalog
```

## Verificación funcional (vía chat del asistente)

Autenticado en el panel, en una conversación del asistente:

| # | Pregunta de prueba | Resultado esperado |
|---|--------------------|--------------------|
| 1 | "Lista los contratos Unicliente" | Listado de contratos `TipProCom` 1 y 2, ordenado por fecha de contrato desc; sin `TipProCom=3` |
| 2 | "Contratos UniCliente MultiPuntos en Madrid" | Filtra `TipProCom=2` + localidad Madrid |
| 3 | "Contratos del cliente B12345678" | Filtra por NIF/CIF del cliente |
| 4 | "¿Qué contrato tiene el CUPS ES00...?" | Filtra por código CUPS (eléctrico o gas) |
| 5 | "Detalle de suministro del contrato 123" | Vista detalle: CUPS, tarifa, potencias P1–P6, consumos |
| 6 | "¿Y su tarifa de gas?" (seguimiento) | Usa el contexto conversacional (feature 004) para responder sobre el contrato previo |
| 7 | Criterio con > 50 resultados | Devuelve todos los relevantes (no truncado a 50); agrupa/resume si el volumen es alto |
| 8 | Criterio sin coincidencias | Mensaje claro de "sin resultados", sin inventar datos |

## Verificación técnica

```bash
php artisan test --filter=ContratosUnicliente
```

Casos cubiertos: filtros por cada columna, eléctrico vs gas (`TipCups`), `TipProCom` 1 y 2 incluidos / 3 excluido, orden por fecha, sin resultados, y verificación de que **no** se trunca a 50 filas.

## Notas

- La respuesta al operador es en español, en lenguaje natural; no expone nombres de herramientas ni consultas internas (FR-015).
- Solo lectura: la herramienta nunca modifica datos (FR-012).
- `TipProCom=3` (MultiCliente MultiPunto) NO se atiende aquí; el asistente indica que ese tipo se consulta de otra forma (feature futura).
