diff --git a/migrations/20260611_turnero_numero_por_prioridad.sql b/migrations/20260611_turnero_numero_por_prioridad.sql new file mode 100644 index 0000000..2570ba7 --- /dev/null +++ b/migrations/20260611_turnero_numero_por_prioridad.sql @@ -0,0 +1,10 @@ +-- ============================================================ +-- Migration: 20260611_turnero_numero_por_prioridad +-- Cambia la unique key de (sesion_id, numero) a +-- (sesion_id, prioridad_id, numero) para permitir que +-- cada prioridad tenga su propia numeración independiente. +-- ============================================================ + +ALTER TABLE turnero_turnos + DROP INDEX uq_sesion_numero, + ADD UNIQUE KEY uq_sesion_prio_numero (sesion_id, prioridad_id, numero); diff --git a/modules/turnero/api/_helpers.php b/modules/turnero/api/_helpers.php index d509852..4c06d88 100644 --- a/modules/turnero/api/_helpers.php +++ b/modules/turnero/api/_helpers.php @@ -183,9 +183,10 @@ function siguienteNumeroPorPrioridad(int $sesionId, int $prioridadId): int 'SELECT COALESCE(MAX(numero), 0) + 1 AS siguiente FROM turnero_turnos WHERE sesion_id = ? + AND prioridad_id = ? FOR UPDATE' ); - $stmt->execute([$sesionId]); + $stmt->execute([$sesionId, $prioridadId]); return (int) $stmt->fetchColumn(); }