-- Migration V23: Módulo Asterisk e Call Logs

-- 1. Inserir a nova permissão para Click-to-Call e Módulo Asterisk
INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) 
SELECT 'Acessar Telefonia Asterisk', 'asterisk_view', 'Acesso ao módulo de telefonia e click-to-call'
WHERE NOT EXISTS (
    SELECT 1 FROM `permissoes` WHERE `chave` = 'asterisk_view'
);

-- 2. Conceder permissão ao Perfil Administrador (id = 1)
INSERT INTO `perfil_permissoes` (`perfil_id`, `permissao_id`)
SELECT 1, id FROM `permissoes` WHERE `chave` = 'asterisk_view'
AND NOT EXISTS (
    SELECT 1 FROM `perfil_permissoes` pp 
    JOIN `permissoes` p ON pp.permissao_id = p.id
    WHERE pp.perfil_id = 1 AND p.chave = 'asterisk_view'
);

-- 3. Criar a Tabela de Call Logs para auditoria e status
CREATE TABLE IF NOT EXISTS `call_logs` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `usuario_id` INT NOT NULL,
  `ramal` VARCHAR(20) NOT NULL,
  `destino` VARCHAR(50) NOT NULL,
  `status_envio` VARCHAR(50) NOT NULL COMMENT 'success, fail (PHP/AMI)',
  `status_asterisk` VARCHAR(50) NULL COMMENT 'answered, busy, no-answer, failed, etc',
  `uniqueid` VARCHAR(100) NULL COMMENT 'Asterisk UniqueID para correlação',
  `error_message` TEXT NULL COMMENT 'Mensagem de erro em caso de falha',
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  INDEX `idx_usuario_id` (`usuario_id`),
  INDEX `idx_uniqueid` (`uniqueid`),
  INDEX `idx_status_envio` (`status_envio`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
