# Sistema de Gestión de Contenedor Ibiza

Aplicación web integral para la gestión automatizada de rotaciones de turnos, horarios y notificaciones para el contenedor de Ibiza.

## 🚀 Características Principales

*   **Gestión de Rotaciones Automatizada**: Generación automática de turnos semanales basada en un "Orden Maestro" personalizable.
*   **Roles de Usuario**: Sistema de permisos granular (Administrador, Coordinador, Ayudante).
*   **Bot de Telegram Integrado**:
    *   Consultas interactivas (Itinerario, Horarios, PDF) mediante botones.
    *   Búsqueda de turnos por nombre natural.
    *   Gestión de Webhook desde panel administrativo.
*   **Generación de PDF**: Reportes descargables con la programación completa.
*   **Interfaz Robusta**: Diseño responsive, drag-and-drop para reordenar turnos.
*   **Docker Ready**: Preparado para despliegue en CasaOS, ZimaOS o Portainer.

## 📋 Requisitos

*   Docker y Docker Compose
*   Servidor MySQL/MariaDB externo (o en otro contenedor)

## 🛠️ Instalación y Despliegue

### Opción A: Docker Compose / Portainer

1.  Clona el repositorio.
2.  Construye la imagen manualmente o usa el script interactivo:
    ```bash
    ./scripts/build_push.sh
    ```
3.  Ejecuta con las variables de entorno necesarias (ver `contenedor.yaml` como ejemplo).

### Actualización de Imagen (Registry Privado)

Para generar una nueva versión y subirla a tu registro (`10.10.4.3:5000`):
```bash
./scripts/build_push.sh
```
El script solicitará la versión (tag) y se encargará del build y el push automáticamente.

### Opción B: CasaOS / ZimaOS

1.  Utiliza la función de "Importar" y selecciona el archivo `contenedor.yaml`.
2.  Ajusta las variables de entorno en la interfaz antes de finalizar.

## ⚙️ Variables de Entorno

| Variable | Descripción | Ejemplo |
|----------|-------------|---------|
| `DB_HOST` | Host de la base de datos (IP:Puerto) | `10.10.4.17:3306` |
| `DB_NAME` | Nombre de la base de datos | `contenedor_ibiza` |
| `DB_USER` | Usuario de MySQL | `usuario` |
| `DB_PASS` | Contraseña de MySQL | `password` |
| `SITE_URL` | URL pública de la aplicación | `https://tu-dominio.com` |
| `TELEGRAM_BOT_TOKEN` | Token del Bot de Telegram | `123456:ABC-DEF...` |
| `TIMEZONE` | Zona horaria (PHP) | `America/Mexico_City` |

## 📖 Manual de Uso Rápido

### 1. Administrador
*   **Gestión de Usuarios**: Crea y edita cuentas. Asigna roles de Coordinador o Ayudante.
*   **Telegram**: Configura el Webhook del bot con un solo clic desde el menú "Telegram".
*   **Rotaciones**: Puede regenerar todo el calendario si es necesario.

### 2. Coordinador
*   **Reorganizar**: Usa la herramienta "Reorganizar Orden" (drag & drop) para cambiar quién sigue a quién en la rotación permanente.
*   **Horarios**: Modifica las horas de apertura/cierre de cada día.

### 3. Ayudante / Usuario
*   Consulta su turno en el Dashboard.
*   Descarga el PDF de rotaciones.
*   Interactúa con el Bot de Telegram para consultar info rápida.

## 🤖 Comandos del Bot

El bot cuenta con un menú interactivo, pero también reconoce:
*   `/start` o `/menu`: Muestra los botones.
*   *(Escribir nombre)*: Busca turnos futuros para esa persona (ej: "Ana").
*   `/tabla`: Muestra el listado de próximas semanas.
*   `/pdf`: Envía el documento PDF.

---
Desarrollado para Condominio Ibiza.
