# Revisión de interconexión — hook.md + sistema_personalizacion.md

**Fecha:** 2026-07-03  
**Proyecto:** `C:\xampp\htdocs\tuto`

## Estado actual (antes de cambios)

| Módulo | Archivo | Función | Depende de |
|--------|---------|---------|------------|
| Panel ventas | `index.php` | Auditoría, prospectos, visitas 360 | JSON estáticos, `tours_config.php` |
| Tour 360° | `tour.php` + `js/tour.js` | Visor Pannellum + WhatsApp genérico | `tours_config.php`, CDN Pannellum |
| Config tour | `includes/tours_config.php` | Modelos, panoramas, WA fijo | Solo archivos locales |
| Estilos | `assets/office365.css`, `css/tour.css` | UI panel y tour | — |

**Riesgos si se implementa mal:**
- Romper enlaces directos `tour.php?modelo=casa54` (clientes con bookmark)
- Forzar MySQL y caer en error 500 si XAMPP MySQL está apagado
- Duplicar lógica de WhatsApp en PHP y JS de forma inconsistente
- Mezclar DB `brigadax` del sitio principal con datos Yugoreal

## Decisiones de diseño (no romper nada)

1. **Base de datos aislada:** `yugoreal` (no toca `brigadax`)
2. **MySQL opcional:** si no hay conexión, el tour sigue con parámetros URL (`tipo`, `comuna`, `nombre`)
3. **Flujo dual:**
   - **Cliente:** `entrada.php` → formulario → `tour.php?cliente=CLI-00001` (experiencia personalizada)
   - **Equipo:** `admin/` → registrar, hooks, pipeline
4. **Un solo generador de hooks:** `includes/hook_generator.php` usado por admin, tour y API
5. **Enlaces legacy:** `tour.php?modelo=casa54` sigue funcionando sin formulario

## Mapa de interconexión

```
hook.md (plantillas 6 pasos)
        ↓
includes/hook_generator.php ←── sistema_personalizacion.md
        ↓                           ↓
   admin/lista.php              MySQL clientes
   admin/registrar.php              ↓
        ↓                    api/registrar_lead.php
   generar / copiar hook            ↓
        ↓                      entrada.php (cliente)
visor.md → tour.php ←──────────────┘
        ↓
   js/tour.js (WhatsApp personalizado)
        ↓
orden.md → index.php#visitas360 (enlaces a entrada.php)
```

## Experiencia única del cliente

1. Llega desde panel o link compartido → `entrada.php?modelo=casa54`
2. Elige rubro (maestro, ferretería, etc.) y comuna Maule
3. Opcional: nombre y teléfono
4. Sistema crea **ID CLI-XXXXX** + hook personalizado en BD
5. Redirige al tour con mensaje de bienvenida y hook visible
6. WhatsApp abre con mensaje ya armado según rubro + comuna + modelo + ambiente

## Archivos nuevos

- `database/schema.sql`, `database/install.php`
- `includes/db_config.php`, `includes/db.php`
- `includes/hook_generator.php`, `includes/clientes_repo.php`
- `entrada.php`, `api/registrar_lead.php`, `api/track_evento.php`
- `admin/` (login, panel, registrar, lista, cliente)
- `css/entrada.css`

## Archivos modificados (mínimo)

- `tour.php` — hook personalizado + cliente BD
- `js/tour.js` — mensaje WA desde bootstrap
- `index.php` — enlaces a `entrada.php`, nav Hooks/CRM
- `css/tour.css` — banner hook

## Verificación post-instalación

1. `http://localhost/tuto/database/install.php` → crea BD
2. `http://localhost/tuto/entrada.php?modelo=casa54` → formulario → tour personalizado
3. `http://localhost/tuto/tour.php?modelo=casa54` → sigue sin BD (fallback)
4. `http://localhost/tuto/admin/` → login ventas / yugoreal