feat(calendario): eventos manuales — reservas, cumpleaños, recordatorios

- Nueva tabla calendar_events (tipo, fecha, hora_inicio/fin, ubicación,
  descripción, creador) — migración 011
- API CRUD /calendario/api.php (list/create/update/delete) con AuditLog
- Permisos: cualquiera autenticado crea; solo creador o Socio/Admin
  edita y elimina
- UI calendario: chip "Eventos", botón "+ Nuevo evento" en toolbar y
  en vista Día, modal con tipo/fecha/horario/ubicación, opción
  "Todo el día"
- Detalle de evento manual muestra creador, horario y ubicación;
  acciones Editar/Eliminar inline (sin navegación) si tiene permiso
- Colores por tipo: reserva sala, cumpleaños, recordatorio, evento
This commit is contained in:
Soporte ZH Consultores
2026-06-04 20:49:23 -05:00
parent cd7595832f
commit d26ab5e855
3 changed files with 520 additions and 28 deletions
+25
View File
@@ -0,0 +1,25 @@
-- ============================================================
-- Donna — Schema 011: calendar_events (entradas manuales del calendario)
-- ============================================================
-- Reservas de sala, cumpleaños, recordatorios y eventos sueltos que
-- no son trámites ni escrituras.
CREATE TABLE IF NOT EXISTS calendar_events (
id INT AUTO_INCREMENT PRIMARY KEY,
titulo VARCHAR(255) NOT NULL DEFAULT '',
descripcion TEXT NULL,
tipo ENUM('reserva_sala','cumpleanos','recordatorio','evento')
NOT NULL DEFAULT 'evento',
fecha DATE NOT NULL,
hora_inicio TIME NULL,
hora_fin TIME NULL,
ubicacion VARCHAR(255) NULL,
creado_por VARCHAR(255) NOT NULL DEFAULT '',
creado_por_nombre VARCHAR(255) NOT NULL DEFAULT '',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_fecha (fecha),
INDEX idx_creado_por (creado_por),
INDEX idx_tipo (tipo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;