const { createClient } = require('@supabase/supabase-js');
require('dotenv').config();

const supabase = createClient(
  process.env.SUPABASE_URL,
  process.env.SUPABASE_ANON_KEY
);

async function migratePIXFields() {
  console.log('🏦 Iniciando migração dos campos PIX...');
  
  try {
    // Executar as alterações na tabela vendas
    const queries = [
      "ALTER TABLE vendas ADD COLUMN IF NOT EXISTS status_pagamento VARCHAR(20) DEFAULT 'pendente'",
      "ALTER TABLE vendas ADD COLUMN IF NOT EXISTS data_pagamento TIMESTAMP",
      "ALTER TABLE vendas ADD COLUMN IF NOT EXISTS pix_payment_id VARCHAR(100)",
      "ALTER TABLE vendas ADD COLUMN IF NOT EXISTS pix_qr_code TEXT",
      "ALTER TABLE vendas ADD COLUMN IF NOT EXISTS metodo_pagamento VARCHAR(20) DEFAULT 'dinheiro'"
    ];

    for (const query of queries) {
      console.log(`Executando: ${query}`);
      const { error } = await supabase.rpc('exec_sql', { sql: query });
      
      if (error) {
        console.error(`Erro ao executar query: ${error.message}`);
        // Continuar mesmo com erro (campo pode já existir)
      } else {
        console.log('✅ Query executada com sucesso');
      }
    }

    // Criar índices
    const indexes = [
      "CREATE INDEX IF NOT EXISTS idx_vendas_status_pagamento ON vendas(status_pagamento)",
      "CREATE INDEX IF NOT EXISTS idx_vendas_pix_payment_id ON vendas(pix_payment_id)"
    ];

    for (const index of indexes) {
      console.log(`Criando índice: ${index}`);
      const { error } = await supabase.rpc('exec_sql', { sql: index });
      
      if (error) {
        console.error(`Erro ao criar índice: ${error.message}`);
      } else {
        console.log('✅ Índice criado com sucesso');
      }
    }

    console.log('🎉 Migração PIX concluída com sucesso!');
    
  } catch (error) {
    console.error('❌ Erro na migração:', error);
    process.exit(1);
  }
}

// Executar migração
migratePIXFields();
