-- Migration v35: Módulo de Resultados Online
-- Execute este script no banco clinica_encaminhamento

-- Tabela principal de resultados
CREATE TABLE IF NOT EXISTS `resultados_online` (
  `id`               int(11)       NOT NULL AUTO_INCREMENT,
  `paciente_id`      int(11)       NOT NULL,
  `titulo`           varchar(200)  NOT NULL,
  `descricao`        text          DEFAULT NULL,
  `arquivo`          varchar(255)  NOT NULL,
  `token_acesso`     varchar(64)   NOT NULL,
  `data_resultado`   date          NOT NULL,
  `data_validade`    date          DEFAULT NULL,
  `notificado_email` tinyint(1)    NOT NULL DEFAULT 0,
  `status`           enum('ativo','expirado','cancelado') NOT NULL DEFAULT 'ativo',
  `criado_por`       int(11)       DEFAULT NULL,
  `data_criacao`     timestamp     NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `uq_token_acesso` (`token_acesso`),
  KEY `idx_paciente_id` (`paciente_id`),
  KEY `idx_status` (`status`),
  CONSTRAINT `fk_resultado_paciente`
    FOREIGN KEY (`paciente_id`) REFERENCES `pacientes` (`id`) ON DELETE CASCADE,
  CONSTRAINT `fk_resultado_usuario`
    FOREIGN KEY (`criado_por`) REFERENCES `usuarios` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Permissões do módulo
INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) VALUES
  ('Resultados Online - Visualizar', 'resultados_online_view',   'Visualizar a listagem e detalhes dos resultados de exames'),
  ('Resultados Online - Gerenciar', 'resultados_online_manage', 'Criar, editar e excluir resultados de exames dos pacientes')
ON DUPLICATE KEY UPDATE `nome` = VALUES(`nome`);
