# Integración del Calendario con los Eventos de Reserve

## Cambios Realizados

Se ha actualizado el archivo [core/app/view/calendar-view.php](core/app/view/calendar-view.php) para integrar los eventos de ambas tablas en el calendario.

### Modificaciones Principales:

#### 1. **Carga de Eventos de Ambas Tablas**

- **Tabla `reservation`**: Eventos de citas programadas (azul - #3498db)
- **Tabla `reserve`**: Eventos de solicitudes/reservas (rojo - #e74c3c)

#### 2. **Codificación por Colores**

- **Azul (#3498db)**: Citas confirmadas de la tabla `reservation`
- **Rojo (#e74c3c)**: Solicitudes de la tabla `reserve`

#### 3. **Leyenda Visual**

Se agregó una leyenda al inicio del calendario que explica el significado de cada color.

#### 4. **Información Mejorada**

Cada evento muestra:

- **Reservations**: Nombre del médico/profesional
- **Reserves**: Nombre del paciente + edad + etiqueta "RESERVA"
- Tooltips informativos al pasar el mouse

#### 5. **Funcionalidades Interactivas**

- Click en evento abre el registro correspondiente
- Reservations: abre `form_gen.php?id={id}`
- Reserves: abre `reserva.php?id={id}`
- Cursor tipo "pointer" para indicar que son clickeables

#### 6. **Mejoras Visuales**

- Bordes definidos para cada tipo de evento
- Títulos descriptivos (tooltips)
- Estilos CSS personalizados por tipo

## Estructura de Datos

### Eventos de Reservation

```php
{
  "title": "Nombre del Médico",
  "url": "./form_gen.php?id=123",
  "start": "2026-01-22T14:30:00",
  "type": "reservation",
  "color": "#3498db"
}
```

### Eventos de Reserve

```php
{
  "title": "RESERVA: Nombre Paciente (Edad: 25)",
  "url": "./reserva.php?id=456",
  "start": "2026-01-22T10:00:00",
  "type": "reserve",
  "color": "#e74c3c"
}
```

## Requisitos

- La tabla `reserve` debe tener al menos los campos: `id`, `name`, `age`, `created_at`
- La clase `ReserveData` debe estar disponible (incluida en el autoload)
- FullCalendar debe estar cargado en la página

## Uso

El calendario se actualiza automáticamente al cargar la página. Los eventos se obtienen directamente de la base de datos:

1. Al acceder a la vista del calendario
2. Se ejecutan las consultas a ambas tablas
3. Los eventos se fusionan en un array JSON
4. FullCalendar renderiza todos los eventos

## Notas

- Los eventos de `reserve` se asignan a las 10:00 AM por defecto (puedes modificar esta hora)
- El título de los eventos de reserve incluye la etiqueta "RESERVA" para fácil identificación
- Los eventos son solo lectura (no editables desde el calendario)
- Los colores pueden personalizarse modificando los valores hex en el código PHP

## Próximas Mejoras Sugeridas

1. Agregar filtro para mostrar/ocultar por tipo de evento
2. Agregar formulario para crear nuevas reservas desde el calendario
3. Implementar sincronización en tiempo real
4. Agregar búsqueda y filtrado avanzado
5. Exportar calendario a iCal o Google Calendar
