-- Migration 050 — AP#11 / PRD-0007-EXT.
-- Adiciona valor `aprovado_parcial` ao ENUM agente_lote_resgate.status_lote.
--
-- SEMANTICA:
--   `aprovado_parcial` = Tef.Net validou parcialmente. Pagamento TRAVADO
--   ate parceiro reanexar correcao (NF/boleto). Apos correcao, o lote
--   volta pra `pendente_aprovacao` (incrementando correcao_tentativas).
--   Regra dura RES#1: 1 chance so de correcao por lote (Migration 051
--   adiciona o contador TINYINT).
--
-- ORDEM ENUM (preservada — historico antes do novo valor):
--   pendente_aprovacao  (default, Migration 035)
--   aguardando_pagamento
--   pago
--   liquidado
--   estornado
--   reprovado_tef_net   (Migration 035)
--   aprovado_parcial    (NOVO — esta migration)
--
-- 1 PASSO vs 3 PASSOS:
--   CLAUDE.md item 11 manda ALTER ENUM em strict mode usar 3 passos
--   (expandir->migrar->confirmar). Aqui adicionamos APENAS um valor novo
--   (sem remover nem renomear nenhum), e nao ha dados ja gravados como
--   'aprovado_parcial' que precisem migrar. Precedente direto: Migration
--   035 (mesma situacao, comentario linha 11 explicita "nao e necessaria
--   a ordem segura de 3 passos"). Mantemos paridade.
--
-- `SET SESSION sql_mode=''` no topo conforme CLAUDE.md item 12 — garante
-- compatibilidade com dados legados que possam violar STRICT_TRANS_TABLES
-- ou NO_ZERO_DATE durante o ALTER.

SET SESSION sql_mode = '';

ALTER TABLE agente_lote_resgate
  MODIFY status_lote ENUM(
    'pendente_aprovacao',
    'aguardando_pagamento',
    'pago',
    'liquidado',
    'estornado',
    'reprovado_tef_net',
    'aprovado_parcial'
  ) NOT NULL DEFAULT 'pendente_aprovacao'
  COMMENT 'Estado do lote no fluxo conta corrente (ADR-0010). aprovado_parcial: AP#11/PRD-0007-EXT — pagamento travado ate parceiro reanexar correcao (1 chance, vide correcao_tentativas).';
