# Integración Ofimedic — Clínica Indautxu (bundle)

Todo lo de la integración con Ofimedic para esta clínica, en una sola carpeta, listo
para la migración al VPS. Agente ElevenLabs: `agent_0201kxdav7vtf8990fgv6c6zx5wy`.

## Contenido de esta carpeta
- `config.json` — bloque `ofimedic` con **base_url + usuario ya rellenos**. La
  contraseña y la API key NO van aquí (ver secrets.php abajo).
- `ofimedic/` — código de servidor (librería + 6 endpoints + sync de catálogo).
  **Es código genérico**: hay que copiarlo a la carpeta de endpoints compartida
  (ver Mapa de despliegue), no se ejecuta desde aquí (usa `require utilidades.php`,
  `inicio.php`).
- `elevenlabs/` — las **7 tools** (`tool_*.json`) y el **prompt** (`prompt_ofimedic.md`)
  para el agente. URLs ya apuntando a `https://nubia.nubip.com/...`.

## Credenciales de Ofimedic (recibidas 2026-07-30)
- **base_url** (en config, SIN `/services.asmx`): `https://ws.ofimedic.com/citaonlinews/45672602F`
- **usuario** (en config, backslash escapado): `Ofimedic\45672602F-COWS`
- **contraseña + API key**: llegaron por enlaces `1ty.me` de un solo uso → van a
  `private/secrets.php` (NO al config.json). Recuperar y guardar YA (se autodestruyen).

## Mapa de despliegue en el VPS (dominio `nubia.nubip.com`, raíz `/home/gwchajw`)

| De aquí | A esto en el VPS |
|---|---|
| `ofimedic/ofimedic_*.php` (los 8) | `public_html/crm_multicliente_clinicas/endpoints/` (junto a `utilidades.php`, `inicio.php`) |
| `config.json` | `clientes/clinica_indautxu/config.json` (ya está aquí) |
| `elevenlabs/*` | NO al servidor — se pegan en el panel de ElevenLabs |

> Las URLs de las 7 tools usan `nubia.nubip.com/crm_multicliente_clinicas/endpoints/…`.
> Si finalmente despliegas los endpoints en `endpoints_agenda_generales/`, hay que
> cambiar la `url` en las 7 tools para que coincida.

## secrets.php — añadir en `/home/gwchajw/private/secrets.php`
```php
'ofimedic_clinica_indautxu_pass'   => '<contraseña del enlace 1ty.me>',
'ofimedic_clinica_indautxu_apikey' => '<API key del enlace 1ty.me>',
```

## Cron (catálogo nocturno; los listados solo responden 21:00–10:59)
```
30 3 * * * php /home/gwchajw/public_html/crm_multicliente_clinicas/endpoints/ofimedic_sync_catalogo_cli.php /home/gwchajw/public_html/clientes/clinica_indautxu/config.json
```

## ElevenLabs (agente `agent_0201kxdav7vtf8990fgv6c6zx5wy`)
- Adjuntar las 7 tools de `elevenlabs/` y pegar `prompt_ofimedic.md`.
- Webhook de inicio → `https://nubia.nubip.com/crm_multicliente_clinicas/endpoints/inicio_conversacion.php?cliente=clinica_indautxu`

## Checklist de activación (en orden)
1. [ ] Migrar el VPS (dominio `nubia.nubip.com`; PHP 8.2 con `curl`, `pdo_sqlite`, `mbstring`).
2. [ ] Confirmar que Ofimedic ha **autorizado la IP `51.255.164.82`** (vía LOPD de la clínica).
3. [ ] Poner contraseña + API key en `private/secrets.php` (claves de arriba).
4. [ ] Copiar `ofimedic/ofimedic_*.php` a la carpeta de endpoints compartida.
5. [ ] **Smoke test**: `DatabaseConnectionTest` + un `GetActivities` (de noche por la restricción horaria).
6. [ ] Ejecutar una vez el sync de catálogo (de noche) → rellena `ofimedic.catalogo`.
7. [ ] Programar el cron nocturno.
8. [ ] Adjuntar las 7 tools + prompt al agente y apuntar el webhook de inicio.
9. [ ] **Prueba real** coordinada con Jennifer: crear una cita de prueba y cancelarla.

## Notas técnicas
- `base_url` va SIN `/services.asmx` (el código lo añade). Usuario con `\` escapado en JSON.
- Auth = Basic (`CURLAUTH_BASIC`) + cabecera `X-API-Key`. El usuario es formato Windows
  `dominio\usuario`; si Basic fallara, probar NTLM (cambio de una línea en `of_llamar`).
- Restricción horaria: listados masivos solo 21:00–10:59; llamadas con identificador
  único (huecos por fecha/actividad, paciente por tel, cita por id) sin restricción.
- Ofimedic = agenda oficial. No hay Google Calendar/Sheets para esta clínica.
