-- ============================================================
-- MIGRAÇÃO: Adicionar Campos de Produtor e Afiliado na Tabela transacoes
-- Data: 2025-06
-- Sistema: Checkout Pro 2025
-- ============================================================

-- Adicionar campos para registrar produtor e afiliado na transação
ALTER TABLE `transacoes` 
ADD COLUMN `produtor_id` INT(11) NULL DEFAULT NULL COMMENT 'ID do usuário produtor (dono do produto)' AFTER `produto_id`,
ADD COLUMN `afiliado_id` INT(11) NULL DEFAULT NULL COMMENT 'ID do usuário afiliado (se houver)' AFTER `produtor_id`,
ADD INDEX `idx_produtor_id` (`produtor_id`),
ADD INDEX `idx_afiliado_id` (`afiliado_id`);

-- Adicionar chaves estrangeiras (opcional - pode causar problemas se houver dados inconsistentes)
-- Descomente apenas se tiver certeza de que os dados estão consistentes:
--
-- ALTER TABLE `transacoes`
-- ADD CONSTRAINT `fk_transacoes_produtor` FOREIGN KEY (`produtor_id`) REFERENCES `usuarios` (`id`) ON DELETE SET NULL,
-- ADD CONSTRAINT `fk_transacoes_afiliado` FOREIGN KEY (`afiliado_id`) REFERENCES `usuarios` (`id`) ON DELETE SET NULL;

-- ============================================================
-- MIGRAÇÃO DE DADOS EXISTENTES (OPCIONAL)
-- ============================================================
-- 
-- Se você já tem transações no banco, pode preencher o produtor_id
-- baseado no produto_id:
--
-- UPDATE transacoes t
-- INNER JOIN produtos p ON p.id = t.produto_id
-- SET t.produtor_id = p.usuario_id
-- WHERE t.produtor_id IS NULL AND p.usuario_id IS NOT NULL;
--
-- ============================================================

-- ============================================================
-- VERIFICAÇÃO
-- ============================================================
-- 
-- Após executar a migração, verifique se tudo está correto:
--
-- SELECT COUNT(*) as total_transacoes FROM transacoes;
-- SELECT COUNT(*) as transacoes_com_produtor FROM transacoes WHERE produtor_id IS NOT NULL;
-- SELECT COUNT(*) as transacoes_com_afiliado FROM transacoes WHERE afiliado_id IS NOT NULL;
-- SELECT id, produto_id, produtor_id, afiliado_id FROM transacoes LIMIT 10;
--
-- ============================================================


