-- ============================================================
-- MIGRAÇÃO: Sistema de Saldos e Saques
-- Data: 2025-07
-- Sistema: Checkout Pro 2025
-- ============================================================

-- Tabela de saldos dos usuários
CREATE TABLE IF NOT EXISTS `saldos_usuarios` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `usuario_id` INT(11) NOT NULL,
    `saldo_disponivel` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT 'Saldo disponível para saque',
    `saldo_pendente` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT 'Saldo pendente (período de garantia)',
    `saldo_bloqueado` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT 'Saldo bloqueado (aguardando processamento de saque)',
    `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `unique_usuario_id` (`usuario_id`),
    KEY `idx_usuario_id` (`usuario_id`),
    CONSTRAINT `fk_saldos_usuario` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Tabela de saques
CREATE TABLE IF NOT EXISTS `saques` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `usuario_id` INT(11) NOT NULL,
    `valor` DECIMAL(10,2) NOT NULL COMMENT 'Valor solicitado para saque',
    `status` VARCHAR(20) NOT NULL DEFAULT 'pendente' COMMENT 'Status: pendente, aprovado, reprovado, pago',
    `forma_pagamento` VARCHAR(50) NOT NULL DEFAULT 'PIX' COMMENT 'Forma de pagamento: PIX, TED, etc.',
    `chave_pagamento` VARCHAR(255) NOT NULL COMMENT 'Chave PIX, conta bancária, etc.',
    `observacao` TEXT NULL COMMENT 'Observações do admin',
    `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
    `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    KEY `idx_usuario_id` (`usuario_id`),
    KEY `idx_status` (`status`),
    KEY `idx_created_at` (`created_at`),
    CONSTRAINT `fk_saques_usuario` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- DADOS INICIAIS
-- ============================================================
-- 
-- Os saldos são criados automaticamente quando necessário.
-- Não é necessário criar registros iniciais.
--
-- ============================================================

-- ============================================================
-- VERIFICAÇÃO
-- ============================================================
-- 
-- Após executar a migração, verifique se tudo está correto:
--
-- SELECT COUNT(*) as total_saldos FROM saldos_usuarios;
-- SELECT COUNT(*) as total_saques FROM saques;
-- SELECT * FROM saldos_usuarios LIMIT 5;
-- SELECT * FROM saques LIMIT 5;
--
-- ============================================================


