-- ============================================================
--  migrations/add_infraestrutura.sql
--  Adiciona colunas de infraestrutura óptica à tabela clientes
--  e coluna tipo à tabela fotos_os
--  Execute UMA ÚNICA VEZ após a instalação inicial do mkt_2026.sql
-- ============================================================

USE `mkt_2026`;

-- Infraestrutura óptica (CTO/OLT)
ALTER TABLE `clientes`
  ADD COLUMN IF NOT EXISTS `cto_nome`   VARCHAR(100) DEFAULT NULL COMMENT 'Nome da caixa CTO vinculada',
  ADD COLUMN IF NOT EXISTS `cto_porta`  TINYINT(3)   DEFAULT NULL COMMENT 'Porta da CTO (1-16)',
  ADD COLUMN IF NOT EXISTS `sinal_box`  DECIMAL(6,2) DEFAULT NULL COMMENT 'Sinal ótico na caixa (dBm)',
  ADD COLUMN IF NOT EXISTS `sinal_cli`  DECIMAL(6,2) DEFAULT NULL COMMENT 'Sinal ótico no cliente (dBm)',
  ADD COLUMN IF NOT EXISTS `olt_gps`    VARCHAR(60)  DEFAULT NULL COMMENT 'Coordenadas GPS da OLT/CTO: "lat,lng"';

-- Índices de performance
CREATE INDEX IF NOT EXISTS `idx_cli_cto`   ON `clientes` (`cto_nome`);
CREATE INDEX IF NOT EXISTS `idx_cli_sinal` ON `clientes` (`sinal_box`);

-- Contatos extras JSON
ALTER TABLE `clientes`
  ADD COLUMN IF NOT EXISTS `contatos_extra` JSON DEFAULT NULL COMMENT 'Contatos adicionais [{"label":"Pai","tel":"(17)..."}]';

-- ============================================================
--  Coluna tipo na tabela fotos_os
--  Diferencia fotos do serviço das fotos da OLT/CTO
-- ============================================================
ALTER TABLE `fotos_os`
  ADD COLUMN IF NOT EXISTS `tipo` ENUM('SERVICO','OLT') NOT NULL DEFAULT 'SERVICO'
    COMMENT 'SERVICO = foto do atendimento | OLT = foto da caixa/OLT';

CREATE INDEX IF NOT EXISTS `idx_fotos_os_tipo` ON `fotos_os` (`tipo`);

-- Confirma
SELECT 'Migration add_infraestrutura.sql aplicada com sucesso!' AS resultado;
