// 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();