-- ============================================================================
-- SEEDS DEV — CARTEIRA REDE HG DO AGENTE 417 (MAMP LOCAL)
-- ============================================================================
-- ATENÇÃO: NÃO RODAR EM PRODUÇÃO.
--
-- Estes seeds:
--   - Carimbam agente_cod_snap=417 em pedidos da carteira REDE HG (Migration 018)
--   - Backfill de tbl_Faturamento com agente_cod_snap pra histórico de
--     out/2024 a mar/2026 (Migrations 019, 024-032)
--   - Preenchem política de resgate dos agentes 278 e 417 (Migration 041)
--
-- Esses dados são específicos do MAMP local pra simulação. Em produção,
-- a carteira real do agente 417 vem da operação Tef.Net e o backfill
-- de faturamento sai do dia-a-dia da apuração.
--
-- Se você QUISER popular o agente 417 em produção pra teste, edite os IDs
-- de cliente/pedido nas Migrations 018+019+024..032 antes de rodar.
-- ============================================================================


-- ============================================================================
-- 20260509_018_seed_agente_cod_snap_417_carteira_redehg
-- ============================================================================
-- Migration 018 — Seed do snapshot do agente 417 (CODGOX DESENVOLVIMENTO DE SOFTWARE
-- LTDA SAC) nos 48 pedidos ATIVOS dos 47 clientes da carteira REDE HG / PLANALTO II
-- / HG ALIMENTACAO, todos hoje sob a revenda 61 (TEF.NET).
--
-- Decisão Stakeholder (09/05/2026): vincular esses clientes ao agente 417. Aplicação
-- manual pré-DT-0015 (UI ainda não existe). Faturamentos já gerados (selados com
-- agente NULL) ficam intactos — tratativa do passado é etapa separada. Próximos
-- faturamentos sairão com agente=417 via trigger trg_agente_snapshot_faturamento_bi
-- (ADR-0005).
--
-- Modelo (PRD-0006 D-02 + D-03 + D-08):
--   * Vínculo agente vive no PEDIDO, não em tbl_Cliente. Snapshot é puro/imutável
--     após este SET. agente_snap_override='S' marca origem manual (RF-04).
--
-- Engine de tbl_Pedido: MyISAM (não suporta ROLLBACK). Defesa = WHERE explícito por
-- cod_Pedido (lista fechada de 48), validados em consulta read-only no MAMP.

UPDATE tbl_Pedido
SET
    agente_cod_snap        = 417,
    agente_modalidade_snap = 'pct_venda',
    agente_pct_snap        = 10.0000,
    agente_snap_override   = 'S'
WHERE cod_Pedido IN (
    -- 13.569.064/0002-30
    8703,
    -- 13.569.064/0003-11
    8418,
    -- 13.569.064/0004-00 (cliente com 2 pedidos)
    7568, 7692,
    -- 13.569.064/0007-45
    6340,
    -- 13.569.064/0008-26
    8135,
    -- 13.569.064/0009-07
    8415,
    -- 13.569.064/0010-40
    8498,
    -- 13.569.064/0011-21
    8580,
    -- 13.569.064/0015-55
    8377,
    -- 13.569.064/0017-17
    8700,
    -- 13.569.064/0018-06
    8576,
    -- 13.569.064/0019-89
    8697,
    -- 13.569.064/0022-84
    8698,
    -- 13.569.064/0023-65
    8499,
    -- 13.569.064/0024-46
    8701,
    -- 13.569.064/0025-27
    8356,
    -- 13.569.064/0026-08
    8414,
    -- 13.569.064/0027-99
    8695,
    -- 13.569.064/0028-70
    8575,
    -- 13.569.064/0031-75
    8705,
    -- 13.569.064/0032-56
    8704,
    -- 13.569.064/0033-37
    8706,
    -- 13.569.064/0034-18
    8707,
    -- 13.569.064/0035-07
    8577,
    -- 13.569.064/0036-80
    8702,
    -- 13.569.064/0037-60
    8579,
    -- 13.569.064/0039-22
    8710,
    -- 13.569.064/0040-66
    7941,
    -- 13.569.064/0041-47
    8551,
    -- 13.569.064/0042-28
    8421,
    -- 13.569.064/0045-70
    8552,
    -- 13.569.064/0048-13
    8581,
    -- 13.569.064/0049-02
    8502,
    -- 13.569.064/0050-38
    8420,
    -- 13.569.064/0051-19
    8887,
    -- 13.569.064/0054-61
    8709,
    -- 13.569.064/0055-42
    8553,
    -- 13.569.064/0056-23
    8554,
    -- 13.569.064/0057-04
    8417,
    -- 13.569.064/0058-95
    8419,
    -- 13.569.064/0059-76
    8696,
    -- 13.569.064/0060-00
    8886,
    -- 13.569.064/0061-90
    8246,
    -- 13.569.064/0062-71
    7780,
    -- 13.569.064/0063-52
    8293,
    -- 11.800.801/0001-58 (PLANALTO II)
    7867,
    -- 60.353.834/0002-93 (HG ALIMENTACAO)
    7878
);

-- Verificação pós-aplicação (informativa; não afeta registry):
-- 48 linhas afetadas esperadas. Se MySQL reportar valor diferente, REVISAR.


-- ============================================================================
-- 20260509_019_seed_agente_snap_faturamento_redehg_2024_10
-- ============================================================================
-- Migration 019 — BACKFILL SNAPSHOT DO AGENTE 417 EM tbl_Faturamento
-- Competência: 2024-10 · Cliente: 13.569.064/0007-45 (REDE HG COMBUSTIVEIS LTDA)
-- 1 linha (id=78797) · valor R$ 172,00 · vencimento 2024-10-15
--
-- Decisão Stakeholder (09/05/2026 noite): popular faturamentos legados da carteira
-- REDE HG mês a mês, começando por out/2024 com baixo volume (1 cliente) pra
-- validar procedimento antes dos meses cheios.
--
-- ⚠️ EXCEÇÃO FORMAL ao PRD-0006 D-03 ("snapshot é puro, nunca muda após INSERT").
-- Justificativa: Migration 018 (09/05/2026) carimbou agente=417 em 48 pedidos da
-- carteira REDE HG, mas faturamentos pré-Migration 018 ficaram com snapshot NULL.
-- Apuração comercial do agente 417 lê de tbl_Faturamento (PRD-0006 D-04 + ADR-0005).
-- Sem este backfill, a apuração desconsidera todo o histórico legítimo da carteira.
-- Override autorizado mês a mês pelo Stakeholder Leader.
--
-- Defesa em profundidade: WHERE com id + cliente_id + pedido_id + agente_cod_snap IS NULL.
-- Engine InnoDB → ROLLBACK transacional disponível em caso de problema.

UPDATE tbl_Faturamento
SET
    agente_cod_snap        = 417,
    agente_modalidade_snap = 'pct_venda',
    agente_pct_snap        = 10.0000
WHERE id = 78797
  AND cliente_id = 5812
  AND pedido_id  = 6340
  AND agente_cod_snap IS NULL;

-- Verificação pós-aplicação esperada: 1 linha afetada.


-- ============================================================================
-- 20260509_024_seed_agente_snap_faturamento_redehg_2024_10
-- ============================================================================
-- ============================================================
-- Migration 024 — Backfill agente_*_snap em tbl_Faturamento (REDE HG / agente 417 CodgoX) — competência 2024-10
-- ============================================================
--
-- Linhas esperadas: 13 (REDE HG matriz CNPJ 0007-45 (continuação Migration 019 que cobriu apenas 1 linha desta competência)).
-- Estrategia "1 migration por mes" aprovada pelo dono em 09/05/2026.
-- Defesa estrita em camadas:
--   1. INNER JOIN tbl_Pedido garante que so backfilamos linhas da carteira do agente 417;
--   2. p.agente_cod_snap = 417 garante que o pedido foi carimbado pela Migration 018;
--   3. f.agente_cod_snap IS NULL garante idempotencia (nao sobrescreve o que ja foi carimbado);
--   4. DATE_FORMAT(f.date_edit) = '2024-10' restringe a competencia alvo.
--
-- Override autorizado da regra D-03 do PRD-0006 (snapshot puro/imutavel) para faturamento passado.
-- Pedidos novos continuam usando o trigger ADR-0005.
-- ============================================================

SET SESSION sql_mode = '';

UPDATE tbl_Faturamento f
INNER JOIN tbl_Pedido p ON p.cod_Pedido = f.pedido_id
SET f.agente_cod_snap = 417,
    f.agente_modalidade_snap = 'pct_cliente_final',
    f.agente_pct_snap = 10.0000
WHERE p.agente_cod_snap = 417
  AND f.agente_cod_snap IS NULL
  AND DATE_FORMAT(f.date_edit, '%Y-%m') = '2024-10';


-- ============================================================================
-- 20260509_025_seed_agente_snap_faturamento_redehg_2025_08
-- ============================================================================
-- ============================================================
-- Migration 025 — Backfill agente_*_snap em tbl_Faturamento (REDE HG / agente 417 CodgoX) — competência 2025-08
-- ============================================================
--
-- Linhas esperadas: 4 (primeira competência com >1 cliente da carteira).
-- Estrategia "1 migration por mes" aprovada pelo dono em 09/05/2026.
-- Defesa estrita em camadas:
--   1. INNER JOIN tbl_Pedido garante que so backfilamos linhas da carteira do agente 417;
--   2. p.agente_cod_snap = 417 garante que o pedido foi carimbado pela Migration 018;
--   3. f.agente_cod_snap IS NULL garante idempotencia (nao sobrescreve o que ja foi carimbado);
--   4. DATE_FORMAT(f.date_edit) = '2025-08' restringe a competencia alvo.
--
-- Override autorizado da regra D-03 do PRD-0006 (snapshot puro/imutavel) para faturamento passado.
-- Pedidos novos continuam usando o trigger ADR-0005.
-- ============================================================

SET SESSION sql_mode = '';

UPDATE tbl_Faturamento f
INNER JOIN tbl_Pedido p ON p.cod_Pedido = f.pedido_id
SET f.agente_cod_snap = 417,
    f.agente_modalidade_snap = 'pct_cliente_final',
    f.agente_pct_snap = 10.0000
WHERE p.agente_cod_snap = 417
  AND f.agente_cod_snap IS NULL
  AND DATE_FORMAT(f.date_edit, '%Y-%m') = '2025-08';


-- ============================================================================
-- 20260509_026_seed_agente_snap_faturamento_redehg_2025_09
-- ============================================================================
-- ============================================================
-- Migration 026 — Backfill agente_*_snap em tbl_Faturamento (REDE HG / agente 417 CodgoX) — competência 2025-09
-- ============================================================
--
-- Linhas esperadas: 6 (expansão da carteira).
-- Estrategia "1 migration por mes" aprovada pelo dono em 09/05/2026.
-- Defesa estrita em camadas:
--   1. INNER JOIN tbl_Pedido garante que so backfilamos linhas da carteira do agente 417;
--   2. p.agente_cod_snap = 417 garante que o pedido foi carimbado pela Migration 018;
--   3. f.agente_cod_snap IS NULL garante idempotencia (nao sobrescreve o que ja foi carimbado);
--   4. DATE_FORMAT(f.date_edit) = '2025-09' restringe a competencia alvo.
--
-- Override autorizado da regra D-03 do PRD-0006 (snapshot puro/imutavel) para faturamento passado.
-- Pedidos novos continuam usando o trigger ADR-0005.
-- ============================================================

SET SESSION sql_mode = '';

UPDATE tbl_Faturamento f
INNER JOIN tbl_Pedido p ON p.cod_Pedido = f.pedido_id
SET f.agente_cod_snap = 417,
    f.agente_modalidade_snap = 'pct_cliente_final',
    f.agente_pct_snap = 10.0000
WHERE p.agente_cod_snap = 417
  AND f.agente_cod_snap IS NULL
  AND DATE_FORMAT(f.date_edit, '%Y-%m') = '2025-09';


-- ============================================================================
-- 20260509_027_seed_agente_snap_faturamento_redehg_2025_10
-- ============================================================================
-- ============================================================
-- Migration 027 — Backfill agente_*_snap em tbl_Faturamento (REDE HG / agente 417 CodgoX) — competência 2025-10
-- ============================================================
--
-- Linhas esperadas: 8 (expansão da carteira).
-- Estrategia "1 migration por mes" aprovada pelo dono em 09/05/2026.
-- Defesa estrita em camadas:
--   1. INNER JOIN tbl_Pedido garante que so backfilamos linhas da carteira do agente 417;
--   2. p.agente_cod_snap = 417 garante que o pedido foi carimbado pela Migration 018;
--   3. f.agente_cod_snap IS NULL garante idempotencia (nao sobrescreve o que ja foi carimbado);
--   4. DATE_FORMAT(f.date_edit) = '2025-10' restringe a competencia alvo.
--
-- Override autorizado da regra D-03 do PRD-0006 (snapshot puro/imutavel) para faturamento passado.
-- Pedidos novos continuam usando o trigger ADR-0005.
-- ============================================================

SET SESSION sql_mode = '';

UPDATE tbl_Faturamento f
INNER JOIN tbl_Pedido p ON p.cod_Pedido = f.pedido_id
SET f.agente_cod_snap = 417,
    f.agente_modalidade_snap = 'pct_cliente_final',
    f.agente_pct_snap = 10.0000
WHERE p.agente_cod_snap = 417
  AND f.agente_cod_snap IS NULL
  AND DATE_FORMAT(f.date_edit, '%Y-%m') = '2025-10';


-- ============================================================================
-- 20260509_028_seed_agente_snap_faturamento_redehg_2025_11
-- ============================================================================
-- ============================================================
-- Migration 028 — Backfill agente_*_snap em tbl_Faturamento (REDE HG / agente 417 CodgoX) — competência 2025-11
-- ============================================================
--
-- Linhas esperadas: 7 (expansão da carteira).
-- Estrategia "1 migration por mes" aprovada pelo dono em 09/05/2026.
-- Defesa estrita em camadas:
--   1. INNER JOIN tbl_Pedido garante que so backfilamos linhas da carteira do agente 417;
--   2. p.agente_cod_snap = 417 garante que o pedido foi carimbado pela Migration 018;
--   3. f.agente_cod_snap IS NULL garante idempotencia (nao sobrescreve o que ja foi carimbado);
--   4. DATE_FORMAT(f.date_edit) = '2025-11' restringe a competencia alvo.
--
-- Override autorizado da regra D-03 do PRD-0006 (snapshot puro/imutavel) para faturamento passado.
-- Pedidos novos continuam usando o trigger ADR-0005.
-- ============================================================

SET SESSION sql_mode = '';

UPDATE tbl_Faturamento f
INNER JOIN tbl_Pedido p ON p.cod_Pedido = f.pedido_id
SET f.agente_cod_snap = 417,
    f.agente_modalidade_snap = 'pct_cliente_final',
    f.agente_pct_snap = 10.0000
WHERE p.agente_cod_snap = 417
  AND f.agente_cod_snap IS NULL
  AND DATE_FORMAT(f.date_edit, '%Y-%m') = '2025-11';


-- ============================================================================
-- 20260509_029_seed_agente_snap_faturamento_redehg_2025_12
-- ============================================================================
-- ============================================================
-- Migration 029 — Backfill agente_*_snap em tbl_Faturamento (REDE HG / agente 417 CodgoX) — competência 2025-12
-- ============================================================
--
-- Linhas esperadas: 6 (expansão da carteira).
-- Estrategia "1 migration por mes" aprovada pelo dono em 09/05/2026.
-- Defesa estrita em camadas:
--   1. INNER JOIN tbl_Pedido garante que so backfilamos linhas da carteira do agente 417;
--   2. p.agente_cod_snap = 417 garante que o pedido foi carimbado pela Migration 018;
--   3. f.agente_cod_snap IS NULL garante idempotencia (nao sobrescreve o que ja foi carimbado);
--   4. DATE_FORMAT(f.date_edit) = '2025-12' restringe a competencia alvo.
--
-- Override autorizado da regra D-03 do PRD-0006 (snapshot puro/imutavel) para faturamento passado.
-- Pedidos novos continuam usando o trigger ADR-0005.
-- ============================================================

SET SESSION sql_mode = '';

UPDATE tbl_Faturamento f
INNER JOIN tbl_Pedido p ON p.cod_Pedido = f.pedido_id
SET f.agente_cod_snap = 417,
    f.agente_modalidade_snap = 'pct_cliente_final',
    f.agente_pct_snap = 10.0000
WHERE p.agente_cod_snap = 417
  AND f.agente_cod_snap IS NULL
  AND DATE_FORMAT(f.date_edit, '%Y-%m') = '2025-12';


-- ============================================================================
-- 20260509_030_seed_agente_snap_faturamento_redehg_2026_01
-- ============================================================================
-- ============================================================
-- Migration 030 — Backfill agente_*_snap em tbl_Faturamento (REDE HG / agente 417 CodgoX) — competência 2026-01
-- ============================================================
--
-- Linhas esperadas: 28 (pico de janeiro/2026 (15 clientes)).
-- Estrategia "1 migration por mes" aprovada pelo dono em 09/05/2026.
-- Defesa estrita em camadas:
--   1. INNER JOIN tbl_Pedido garante que so backfilamos linhas da carteira do agente 417;
--   2. p.agente_cod_snap = 417 garante que o pedido foi carimbado pela Migration 018;
--   3. f.agente_cod_snap IS NULL garante idempotencia (nao sobrescreve o que ja foi carimbado);
--   4. DATE_FORMAT(f.date_edit) = '2026-01' restringe a competencia alvo.
--
-- Override autorizado da regra D-03 do PRD-0006 (snapshot puro/imutavel) para faturamento passado.
-- Pedidos novos continuam usando o trigger ADR-0005.
-- ============================================================

SET SESSION sql_mode = '';

UPDATE tbl_Faturamento f
INNER JOIN tbl_Pedido p ON p.cod_Pedido = f.pedido_id
SET f.agente_cod_snap = 417,
    f.agente_modalidade_snap = 'pct_cliente_final',
    f.agente_pct_snap = 10.0000
WHERE p.agente_cod_snap = 417
  AND f.agente_cod_snap IS NULL
  AND DATE_FORMAT(f.date_edit, '%Y-%m') = '2026-01';


-- ============================================================================
-- 20260509_031_seed_agente_snap_faturamento_redehg_2026_02
-- ============================================================================
-- ============================================================
-- Migration 031 — Backfill agente_*_snap em tbl_Faturamento (REDE HG / agente 417 CodgoX) — competência 2026-02
-- ============================================================
--
-- Linhas esperadas: 15 (fevereiro/2026).
-- Estrategia "1 migration por mes" aprovada pelo dono em 09/05/2026.
-- Defesa estrita em camadas:
--   1. INNER JOIN tbl_Pedido garante que so backfilamos linhas da carteira do agente 417;
--   2. p.agente_cod_snap = 417 garante que o pedido foi carimbado pela Migration 018;
--   3. f.agente_cod_snap IS NULL garante idempotencia (nao sobrescreve o que ja foi carimbado);
--   4. DATE_FORMAT(f.date_edit) = '2026-02' restringe a competencia alvo.
--
-- Override autorizado da regra D-03 do PRD-0006 (snapshot puro/imutavel) para faturamento passado.
-- Pedidos novos continuam usando o trigger ADR-0005.
-- ============================================================

SET SESSION sql_mode = '';

UPDATE tbl_Faturamento f
INNER JOIN tbl_Pedido p ON p.cod_Pedido = f.pedido_id
SET f.agente_cod_snap = 417,
    f.agente_modalidade_snap = 'pct_cliente_final',
    f.agente_pct_snap = 10.0000
WHERE p.agente_cod_snap = 417
  AND f.agente_cod_snap IS NULL
  AND DATE_FORMAT(f.date_edit, '%Y-%m') = '2026-02';


-- ============================================================================
-- 20260509_032_seed_agente_snap_faturamento_redehg_2026_03
-- ============================================================================
-- ============================================================
-- Migration 032 — Backfill agente_*_snap em tbl_Faturamento (REDE HG / agente 417 CodgoX) — competência 2026-03
-- ============================================================
--
-- Linhas esperadas: 15 (março/2026).
-- Estrategia "1 migration por mes" aprovada pelo dono em 09/05/2026.
-- Defesa estrita em camadas:
--   1. INNER JOIN tbl_Pedido garante que so backfilamos linhas da carteira do agente 417;
--   2. p.agente_cod_snap = 417 garante que o pedido foi carimbado pela Migration 018;
--   3. f.agente_cod_snap IS NULL garante idempotencia (nao sobrescreve o que ja foi carimbado);
--   4. DATE_FORMAT(f.date_edit) = '2026-03' restringe a competencia alvo.
--
-- Override autorizado da regra D-03 do PRD-0006 (snapshot puro/imutavel) para faturamento passado.
-- Pedidos novos continuam usando o trigger ADR-0005.
-- ============================================================

SET SESSION sql_mode = '';

UPDATE tbl_Faturamento f
INNER JOIN tbl_Pedido p ON p.cod_Pedido = f.pedido_id
SET f.agente_cod_snap = 417,
    f.agente_modalidade_snap = 'pct_cliente_final',
    f.agente_pct_snap = 10.0000
WHERE p.agente_cod_snap = 417
  AND f.agente_cod_snap IS NULL
  AND DATE_FORMAT(f.date_edit, '%Y-%m') = '2026-03';


-- ============================================================================
-- 20260511_041_backfill_agentes_278_417_resgate_config
-- ============================================================================
-- Migration 041 — RES#2 (11/05/2026).
--
-- Backfill da politica de resgate nos 2 agentes existentes hoje:
--   - 278 (BJ COMERCIO / Aibal)
--   - 417 (CODGOX / Rede HG)
--
-- Defaults:
--   agente_limite_resgates_auto       = 3
--   agente_dia_min_resgate_corrente  = 20
--
-- Esses valores sao apenas "ponto de partida" — o dono ajustara
-- individualmente pelo cadastro Tef.Net depois.
--
-- Necessario rodar ANTES da Migration 042 (ALTER NOT NULL).
--
-- Card: RES#2.

SET SESSION sql_mode = '';

UPDATE tbl_Representante
   SET agente_limite_resgates_auto      = 3,
       agente_dia_min_resgate_corrente = 20
 WHERE id IN (278, 417)
   AND agente_limite_resgates_auto IS NULL;

