// Script para criar automaticamente o bucket 'catalogo'
require('dotenv').config();
const { createClient } = require('@supabase/supabase-js');

const supabaseUrl = process.env.SUPABASE_URL;
const supabaseKey = process.env.SUPABASE_SERVICE_KEY || process.env.SUPABASE_ANON_KEY;

if (!supabaseUrl || !supabaseKey) {
  console.error('❌ Configure as variáveis de ambiente no arquivo .env');
  process.exit(1);
}

const supabase = createClient(supabaseUrl, supabaseKey);

async function criarBucketCatalogo() {
  console.log('🚀 Criando bucket "catalogo"...\n');
  
  try {
    // Verificar se já existe
    const { data: buckets } = await supabase.storage.listBuckets();
    const existe = buckets?.find(b => b.id === 'catalogo');
    
    if (existe) {
      console.log('✅ Bucket "catalogo" já existe!');
      console.log('   - Público:', existe.public);
      console.log('\n✨ Tudo certo! Você já pode usar o sistema de fotos.');
      return;
    }
    
    // Criar bucket
    const { data, error } = await supabase.storage.createBucket('catalogo', {
      public: true,
      fileSizeLimit: 5242880, // 5MB
      allowedMimeTypes: ['image/jpeg', 'image/jpg', 'image/png', 'image/webp', 'image/gif']
    });
    
    if (error) {
      console.error('❌ Erro ao criar bucket:', error.message);
      console.log('\n💡 Solução alternativa:');
      console.log('   1. Acesse o Supabase Dashboard');
      console.log('   2. Vá em Storage > Create a new bucket');
      console.log('   3. Nome: catalogo');
      console.log('   4. Marque "Public bucket"');
      console.log('   5. File size limit: 5MB');
      return;
    }
    
    console.log('✅ Bucket "catalogo" criado com sucesso!');
    console.log('\n📋 Próximo passo: Configurar políticas RLS');
    console.log('   Execute o script SQL para configurar as permissões:');
    console.log('   sql/setup-bucket-catalogo.sql');
    console.log('\n   Ou continue e eu tento configurar automaticamente...');
    
    // Aguardar 2 segundos
    await new Promise(resolve => setTimeout(resolve, 2000));
    
    console.log('\n🔐 Configurando políticas de acesso...');
    
    // Nota: Políticas RLS precisam ser criadas via SQL
    // O SDK do Supabase não suporta criação de políticas diretamente
    
    console.log('\n⚠️  IMPORTANTE:');
    console.log('   Para o bucket funcionar completamente, você DEVE executar');
    console.log('   o script SQL para criar as políticas de segurança:');
    console.log('\n   1. Abra o Supabase Dashboard');
    console.log('   2. Vá em SQL Editor');
    console.log('   3. Cole o conteúdo de: sql/setup-bucket-catalogo.sql');
    console.log('   4. Execute (Run)');
    console.log('\n   Sem as políticas, o upload NÃO funcionará!');
    
  } catch (error) {
    console.error('\n❌ Erro:', error.message);
  }
}

criarBucketCatalogo();
