-- ============================================================
-- Migração: confirmação de dados pelo titular/família (frescor)
-- 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 -----------------------------------------------
--    Completude não é frescor: um cadastro pode estar 100%
--    preenchido e 100% errado. Estas colunas registram a última
--    vez que ALGUÉM (titular, família ou funcionária que falou
--    com eles) atestou que os dados estão corretos.
--
--    dados_confirmados_em  : quando foi a última confirmação
--    dados_confirmados_via : 'link' (página pública) | 'token'
--                            (código SMS/e-mail) | 'telefone' |
--                            'presencial' | 'outro'

ALTER TABLE contatos
    ADD COLUMN IF NOT EXISTS dados_confirmados_em  DATETIME NULL    AFTER email_dono,
    ADD COLUMN IF NOT EXISTS dados_confirmados_via VARCHAR(40) NULL AFTER dados_confirmados_em;

-- 2. Regras de negócio (aplicadas no código, registradas aqui) --
--    * A página pública /confirmar agora mostra os dados do
--      cadastro e permite confirmar, corrigir (celular, e-mail,
--      endereço, responsável) ou comunicar falecimento.
--    * Toda confirmação (link, token, registro manual da equipe)
--      grava dados_confirmados_em = NOW().
--    * "Cadastro a reconfirmar" = ativo sem confirmação nos
--      últimos 12 meses (ou nunca confirmado).

-- 3. Verificação pós-migração ---------------------------------
SELECT
    COUNT(*) AS total_ativos,
    SUM(dados_confirmados_em IS NOT NULL) AS ja_confirmados,
    SUM(dados_confirmados_em IS NULL
        OR dados_confirmados_em < DATE_SUB(NOW(), INTERVAL 12 MONTH)) AS a_reconfirmar
FROM contatos
WHERE situacao = 'ativo';
