NUEVA ARQUITECTURA - DASHBOARD TOTEAT
=====================================

Arquitectura:

    API TOTEAT
        |
        v
    sync_toteat.php   (UNICO consumidor de Toteat)
        |
        v
    MySQL / toteat_dashboard_snapshot
        |
        v
    refresh_dashboard.php
        |
        v
    dashboard.php

QUE CAMBIO
==========

1) dashboard.php YA NO ejecuta los 35 PHP de puntos_ventas.
2) refresh_dashboard.php YA NO ejecuta dashboard_data.php.
3) sync_toteat.php mantiene la logica de negocio de dashboard_data.php,
   pero consume Toteat de forma secuencial y rate-limited.
4) El resultado consolidado completo se guarda como snapshot JSON en MySQL.
5) El dashboard consulta un solo snapshot MySQL cada 20 segundos.
6) Si Toteat falla, NO se elimina el ultimo snapshot correcto.

PRIMERA PRUEBA
==============

En el servidor de pruebas abre CMD y ejecuta:

    sync_toteat_fecha.bat

Ejemplo:

    Fecha: 2026-08-18
    Evento: Campeonato Internacional - UC vs E. de la Plata

IMPORTANTE:
El proveedor permite 3 llamadas por minuto. El sincronizador deja 21 segundos
entre llamadas, por lo que una vuelta completa de 35 locales demora aprox.
12 a 13 minutos como minimo.

Cuando termine, abre:

    http://192.9.200.128/dashboard/dashboard.php?fecha=2026-08-18&evento=...

El dashboard se actualiza automaticamente desde MySQL; no requiere F5.

QUE DEBES VER EN NETWORK
========================

ANTES:
    35 requests a puntos_ventas/*.php

AHORA:
    1 request a refresh_dashboard.php

La tabla MySQL toteat_dashboard_snapshot se crea automaticamente en el primer
uso. No necesitas crearla manualmente.

AUTOMATIZACION
==============

Para eventos actuales, configura Programador de tareas de Windows para ejecutar:

    sync_toteat_hoy.bat

cada 15 minutos.

El archivo sync_toteat.lock evita que se ejecuten dos sincronizaciones al mismo
tiempo.

LOG
===

    dashboard/logs/toteat_sync.log

PUNTOS_VENTAS
=============

Los archivos de puntos_ventas/ se conservan sin borrar como respaldo y para
comparacion, pero dashboard.php ya no los llama directamente.
