# Webhook — implementación

## De dónde sale el código

El webhook de este proyecto se basa en el **esqueleto del kit**: `_kit-agentes-whatsapp/ejemplos/webhook-base.php`.

Adaptaciones específicas para pizzería:

1. **Tools del agente**: usar `tools/tools-definicion.json` en lugar de las de Herrajes.
2. **System prompt**: usar `prompts/system-prompt.md` (reemplazar variables runtime).
3. **Validar horario**: chequear si el local está abierto antes de tomar pedidos.
4. **Validar zona delivery**: si el cliente da dirección, verificar zona antes de cotizar envío.
5. **Webhook MP separado**: archivo aparte en `/webhooks/mercadopago.php`.

## Archivos esperados en producción

```
/var/www/html/webhook/
├── whatsapp.php              ← el webhook principal de Twilio WhatsApp
├── mercadopago.php           ← webhook de pagos MP
└── lib/
    ├── auth.php              ← validar firma Twilio
    ├── claude.php            ← loop agentic
    ├── tools/                ← implementación de cada tool
    │   ├── buscar_productos.php
    │   ├── agregar_al_carrito.php
    │   ├── crear_pedido.php
    │   ├── validar_zona_delivery.php
    │   ├── generar_link_pago.php
    │   └── ...
    ├── media.php             ← Whisper + Claude vision
    ├── templates.php         ← gestión templates Twilio
    ├── mercadopago_api.php   ← cliente de MP API
    └── notificar.php         ← push al panel restaurante cuando llega pedido
```

## Configuración mínima env vars

```bash
# /etc/apache2/envvars (Linux) o equivalent en otros stacks

# Twilio
export TWILIO_ACCOUNT_SID='ACxxx'
export TWILIO_AUTH_TOKEN='xxx'
export TWILIO_WHATSAPP_FROM='+549XXXXXXXXX'

# IA
export ANTHROPIC_API_KEY='sk-ant-xxx'
export OPENAI_API_KEY='sk-xxx'

# MercadoPago
export MP_ACCESS_TOKEN='APP_USR-xxx'
export MP_WEBHOOK_SECRET='xxx'

# Pizzería config (puede venir de DB o env)
export PIZZERIA_NOMBRE='La Estrella'
export PIZZERIA_DIRECCION='Av Corrientes 1234'
export PIZZERIA_HORARIO_APERTURA='18:00'
export PIZZERIA_HORARIO_CIERRE='00:30'
export PIZZERIA_DIAS_OPERA='1,2,3,4,5,6,0'
export PIZZERIA_ALIAS_TRANSFER='pizzeria.estrella'

# DB
export DB_HOST='localhost'
export DB_NAME='pizzeria_main'
export DB_USER='app'
export DB_PASS='xxxx'
```

## Después de configurar env vars

```bash
sudo systemctl restart apache2   # OBLIGATORIO restart, no reload
```

## Probar end-to-end

1. Mandar "hola" al número WA del piloto desde tu celular.
2. Confirmar log: `tail -f /var/log/apache2/error.log | grep WA_`
3. Debería responder con saludo + 3 botones del menú principal.
4. Hacer un pedido completo de prueba.
5. Verificar que se creó en BD (`SELECT * FROM pedidos ORDER BY id DESC LIMIT 1`).

## Próximos pasos

- Ver `docs/00-vision-y-mvp.md` para el roadmap de implementación semana a semana.
- Antes de codear, leer **todo el kit** `_kit-agentes-whatsapp/` — ahí están las trampas que descubrimos con el agente de Herrajes y que aplican igual acá.
