-- ════════════════════════════════════════════════════════════════
-- Migration 006 — Tipos de lugar en el Turnero
-- Permite distinguir escritorios de Recepción de estaciones de Muestras.
-- ════════════════════════════════════════════════════════════════

-- Añadir columna tipo a turnero_lugares
ALTER TABLE turnero_lugares
    ADD COLUMN IF NOT EXISTS tipo
        ENUM('recepcion', 'muestras') NOT NULL DEFAULT 'muestras'
        COMMENT 'recepcion=ventanilla de recepcion | muestras=estacion de toma de muestras'
        AFTER nombre;

-- Los lugares existentes (Toma de Muestras, Rayos X, etc.) quedan como 'muestras'
-- Los escritorios de recepción se crean desde el panel de configuración.

-- Insertar escritorios de recepción de ejemplo si no existen
INSERT IGNORE INTO turnero_lugares (id, nombre, tipo, descripcion, activo, sort_order) VALUES
(10, 'Recepción 1', 'recepcion', 'Primer escritorio de recepción', 1, 1),
(11, 'Recepción 2', 'recepcion', 'Segundo escritorio de recepción', 1, 2);

-- Índice para filtrar por tipo
ALTER TABLE turnero_lugares
    ADD INDEX IF NOT EXISTS idx_tipo (tipo);

-- ────────────────────────────────────────────────────────────────
-- Añadir recepcion_desk_id a turnero_turnos
-- Permite saber en qué escritorio de recepción fue atendido el turno
-- (opcional: si NULL = recepcionista no seleccionó escritorio)
ALTER TABLE turnero_turnos
    ADD COLUMN IF NOT EXISTS recepcion_desk_id INT UNSIGNED DEFAULT NULL
        COMMENT 'FK turnero_lugares.id (tipo=recepcion) — escritorio que llamó el turno'
        AFTER lugar_destino_id;

ALTER TABLE turnero_turnos
    ADD INDEX IF NOT EXISTS idx_rec_desk (recepcion_desk_id);
