-- Migration 006 — CREATE agente_lote_resgate + agente_lote_item + agente_critica_resgate
-- Lote (entidade transacional unica do ciclo de pagamento) + vinculo com itens + critica blocker
-- Card: AP#5

CREATE TABLE IF NOT EXISTS agente_lote_resgate (
  id INT PRIMARY KEY AUTO_INCREMENT,
  numero_humano VARCHAR(20) NOT NULL COMMENT 'LR-YYYY-NNNN',
  cod_Representante INT NOT NULL,
  data_resgate DATETIME NOT NULL COMMENT 'capturado no cliente',
  total DECIMAL(14,2) NOT NULL,
  status_lote ENUM('aguardando_pagamento','pago','liquidado','estornado') NOT NULL DEFAULT 'aguardando_pagamento',
  data_pag DATETIME NULL,
  forma_pag ENUM('pix','ted','boleto','outros') NULL,
  comprovante_hash VARCHAR(64) NULL COMMENT 'hash_temp pos-upload',
  observacao TEXT NULL,
  liquidado_at DATETIME NULL,
  liquidado_by INT NULL,
  estornado_at DATETIME NULL,
  estornado_by INT NULL,
  estorno_motivo VARCHAR(240) NULL,
  situacao TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uk_lote_numero (numero_humano),
  INDEX idx_lote_repr_status (cod_Representante, status_lote),
  INDEX idx_lote_data (data_resgate)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS agente_lote_item (
  id INT PRIMARY KEY AUTO_INCREMENT,
  lote_id INT NOT NULL,
  apuracao_item_id INT NOT NULL,
  valor_snap DECIMAL(14,2) NOT NULL,
  UNIQUE KEY uk_lote_item (apuracao_item_id) COMMENT '1 item de apuracao em no maximo 1 lote nao-estornado',
  INDEX idx_lote_item_lote (lote_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS agente_critica_resgate (
  id INT PRIMARY KEY AUTO_INCREMENT,
  cod_Representante INT NOT NULL,
  competencia CHAR(7) NULL COMMENT 'NULL=critica geral; preenchido=especifica',
  motivo VARCHAR(200) NOT NULL,
  bloqueia_resgate TINYINT(1) NOT NULL DEFAULT 1,
  ativa TINYINT(1) NOT NULL DEFAULT 1,
  criado_at DATETIME NOT NULL,
  criado_by INT NOT NULL,
  resolvido_at DATETIME NULL,
  resolvido_by INT NULL,
  INDEX idx_critica_repr (cod_Representante, ativa)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
