-- Migration 033 — DT-0021 — fix ENUM modalidade_snap em agente_apuracao_periodos.
--
-- Contexto: COM#4 (09/05/2026, Migration 020) renomeou ENUM agente_modalidade
-- de ('pct_venda','pct_comissao','tabela_preco') para ('pct_parceiro',
-- 'pct_cliente_final','tabela_preco') em tbl_Representante. Mas a coluna
-- agente_apuracao_periodos.modalidade_snap nao foi atualizada na mesma rodada.
-- Resultado: cron de apuracao falha com `Data truncated for column 'modalidade_snap'`
-- toda vez que tenta gravar o snapshot da modalidade vigente.
--
-- Padrao seguro de ALTER ENUM em strict mode (memoria
-- feedback_alter_enum_ordem_segura.md):
--   1. ALTER pra ENUM expandido (velhos + novos)
--   2. UPDATE pros nomes novos
--   3. ALTER pra ENUM final (so novos)
--
-- Status: cobre DT-0021. Detectado durante UI#23 (smoke do cron --meses=3).

SET SESSION sql_mode = '';

-- Passo 1 — expande ENUM aceitando velhos + novos (compat temporaria)
ALTER TABLE agente_apuracao_periodos
  MODIFY modalidade_snap
    ENUM('pct_venda','pct_comissao','pct_parceiro','pct_cliente_final','tabela_preco') NULL;

-- Passo 2 — UPDATE pros nomes novos.
-- (Hoje a tabela esta vazia pra agentes 278 e 417, mas a migration permanece
-- idempotente caso haja registros legados em ambientes diferentes.)
UPDATE agente_apuracao_periodos SET modalidade_snap='pct_parceiro'      WHERE modalidade_snap='pct_venda';
UPDATE agente_apuracao_periodos SET modalidade_snap='pct_cliente_final' WHERE modalidade_snap='pct_comissao';

-- Passo 3 — ENUM final (so nomes novos).
ALTER TABLE agente_apuracao_periodos
  MODIFY modalidade_snap
    ENUM('pct_parceiro','pct_cliente_final','tabela_preco') NULL;
