-- Migration v51: Escala de Plantão

-- ======================================================
-- DEFINIÇÃO DE TURNOS
-- ======================================================
CREATE TABLE IF NOT EXISTS plantao_turnos (
    id          INT AUTO_INCREMENT PRIMARY KEY,
    clinica_id  INT NOT NULL DEFAULT 1,
    nome        VARCHAR(100) NOT NULL,
    hora_inicio TIME NOT NULL,
    hora_fim    TIME NOT NULL,
    cor         VARCHAR(7) NOT NULL DEFAULT '#4e73df',
    ativo       TINYINT(1) NOT NULL DEFAULT 1,
    created_at  DATETIME DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_clinica (clinica_id),
    INDEX idx_ativo   (ativo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Turnos padrão (inseridos apenas na clínica 1 como exemplo)
INSERT IGNORE INTO plantao_turnos (clinica_id, nome, hora_inicio, hora_fim, cor) VALUES
(1, 'Manhã',         '07:00:00', '13:00:00', '#1cc88a'),
(1, 'Tarde',         '13:00:00', '19:00:00', '#f6c23e'),
(1, 'Noite',         '19:00:00', '07:00:00', '#36b9cc'),
(1, 'Plantão 12h D', '07:00:00', '19:00:00', '#4e73df'),
(1, 'Plantão 12h N', '19:00:00', '07:00:00', '#858796'),
(1, 'Plantão 24h',   '07:00:00', '07:00:00', '#e74a3b');

-- ======================================================
-- ESCALA DE PLANTÃO
-- ======================================================
CREATE TABLE IF NOT EXISTS plantao_escalas (
    id               INT AUTO_INCREMENT PRIMARY KEY,
    clinica_id       INT NOT NULL DEFAULT 1,
    profissional_id  INT NOT NULL,
    turno_id         INT NOT NULL,
    setor_id         INT DEFAULT NULL COMMENT 'hospital_alas.id',
    data_plantao     DATE NOT NULL,
    status           ENUM('escalado','confirmado','falta','trocado') NOT NULL DEFAULT 'escalado',
    observacao       TEXT DEFAULT NULL,
    usuario_id       INT NOT NULL,
    created_at       DATETIME DEFAULT CURRENT_TIMESTAMP,
    deleted_at       DATETIME DEFAULT NULL,
    FOREIGN KEY (turno_id) REFERENCES plantao_turnos(id) ON DELETE RESTRICT,
    INDEX idx_clinica     (clinica_id),
    INDEX idx_profissional(profissional_id),
    INDEX idx_data        (data_plantao),
    INDEX idx_turno       (turno_id),
    INDEX idx_setor       (setor_id),
    INDEX idx_deleted     (deleted_at),
    UNIQUE KEY uq_escala  (clinica_id, profissional_id, turno_id, data_plantao, deleted_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ======================================================
-- PERMISSÕES
-- ======================================================
-- escala_view       = Ver a escala de plantão
-- escala_gerenciar  = Criar / editar / remover escalas e turnos
