-- ============================================================
-- Migração: data de nascimento e CPF
-- Data   : 2026-07-20
-- Requer : MySQL 8.0+ / MariaDB 10.3+ (ADD COLUMN IF NOT EXISTS)
-- Seguro : idempotente — pode ser executado mais de uma vez.
--          O sistema também aplica estas colunas sozinho
--          (auto-migração no model Contact); este arquivo serve
--          para execução manual/documentação.
-- ============================================================

-- 1. Estrutura -----------------------------------------------
--    data_nascimento : data completa (permite calcular idade e
--                       priorizar a fila de investigação por idade)
--    cpf             : 11 dígitos, sem pontuação. Opcional.
--                       Usado apenas para eventual consulta de
--                       óbito em bureaus externos — não entra nas
--                       exportações gerais (só na exportação
--                       dedicada, restrita a super_admin).

ALTER TABLE contatos
    ADD COLUMN IF NOT EXISTS data_nascimento DATE NULL         AFTER dados_confirmados_via,
    ADD COLUMN IF NOT EXISTS cpf              VARCHAR(11) NULL AFTER data_nascimento;

-- 2. Regras de negócio (aplicadas no código, registradas aqui) --
--    * Ao salvar data_nascimento, mes_aniver é recalculado
--      automaticamente a partir dela (fonte de verdade única).
--    * CPF é validado por dígito verificador (não só formato) e
--      checado contra duplicidade antes de salvar.
--    * CPF NUNCA aparece nas exportações gerais de contatos/listas —
--      só na exportação dedicada (Contatos → Exportar CPFs).

-- 3. Verificação pós-migração ---------------------------------
SELECT
    COUNT(*)                                            AS total_ativos,
    SUM(data_nascimento IS NOT NULL)                    AS com_nascimento,
    SUM(cpf IS NOT NULL AND cpf <> '')                  AS com_cpf
FROM contatos
WHERE situacao = 'ativo';
