# 🔧 Solução: Erro ao Adicionar Fotos ## ✅ Bucket Criado com Sucesso! Vejo na imagem que o bucket `catalogo` foi criado e estĂĄ marcado como **Public**. Perfeito! 👍 ## ❌ O Problema Faltam as **polĂ­ticas de segurança (RLS)** que permitem upload, update e delete. ## 🚀 Solução RĂĄpida (2 minutos) ### Passo 1: Executar SQL 1. No Supabase, clique em **SQL Editor** (menu lateral esquerdo) 2. Clique em **"New Query"** 3. Cole o cĂłdigo abaixo: ```sql -- Remover polĂ­ticas antigas se existirem DROP POLICY IF EXISTS "Permitir leitura pĂșblica catalogo" ON storage.objects; DROP POLICY IF EXISTS "Permitir upload catalogo" ON storage.objects; DROP POLICY IF EXISTS "Permitir update catalogo" ON storage.objects; DROP POLICY IF EXISTS "Permitir delete catalogo" ON storage.objects; -- 1. Leitura pĂșblica CREATE POLICY "Permitir leitura pĂșblica catalogo" ON storage.objects FOR SELECT USING (bucket_id = 'catalogo'); -- 2. Upload CREATE POLICY "Permitir upload catalogo" ON storage.objects FOR INSERT WITH CHECK (bucket_id = 'catalogo'); -- 3. Update CREATE POLICY "Permitir update catalogo" ON storage.objects FOR UPDATE USING (bucket_id = 'catalogo'); -- 4. Delete CREATE POLICY "Permitir delete catalogo" ON storage.objects FOR DELETE USING (bucket_id = 'catalogo'); ``` 4. Clique em **"Run"** ou pressione **F5** 5. Aguarde a mensagem de sucesso ### Passo 2: Testar 1. Volte para o sistema (recarregue a pĂĄgina se necessĂĄrio) 2. Acesse **Site / Catalogo** 3. Clique no botĂŁo **"Fotos"** de qualquer produto 4. Clique em **"Adicionar Nova Foto"** 5. Selecione uma imagem 6. Deve funcionar! ✅ ## 🔍 Como Verificar se as PolĂ­ticas Foram Criadas Execute este SQL para verificar: ```sql SELECT policyname, cmd as "Comando", CASE WHEN cmd = 'SELECT' THEN 'Leitura' WHEN cmd = 'INSERT' THEN 'Upload' WHEN cmd = 'UPDATE' THEN 'Atualização' WHEN cmd = 'DELETE' THEN 'ExclusĂŁo' END as "Tipo" FROM pg_policies WHERE tablename = 'objects' AND schemaname = 'storage' AND policyname LIKE '%catalogo%' ORDER BY policyname; ``` **Resultado esperado:** 4 polĂ­ticas (SELECT, INSERT, UPDATE, DELETE) ## 🐛 Se Ainda NĂŁo Funcionar ### 1. Verifique o Console do Navegador 1. Pressione **F12** no navegador 2. VĂĄ na aba **Console** 3. Tente fazer upload novamente 4. Veja a mensagem de erro ### 2. Mensagens de Erro Comuns **"new row violates row-level security policy"** - **Causa:** PolĂ­ticas RLS nĂŁo foram criadas - **Solução:** Execute o SQL acima novamente **"Payload too large"** - **Causa:** Arquivo maior que 5MB - **Solução:** Use uma imagem menor **"Invalid file type"** - **Causa:** Tipo de arquivo nĂŁo permitido - **Solução:** Use apenas JPEG, PNG, WebP ou GIF **"Network error" ou "Failed to fetch"** - **Causa:** Servidor offline - **Solução:** Verifique se o servidor estĂĄ rodando ### 3. Verificar Servidor No terminal, veja se hĂĄ erros: ```bash # Verificar se estĂĄ rodando curl http://localhost:5000/api/produtos # Ver logs em tempo real tail -f logs/*.log ``` ## 📊 Estrutura Esperada Depois do upload bem-sucedido, vocĂȘ verĂĄ no Supabase Storage: ``` catalogo/ └── produto_{id}/ ├── 1729765432123-foto1.jpg ├── 1729765433456-foto2.png └── 1729765434789-foto3.webp ``` ## ✅ Melhorias Implementadas Atualizei o cĂłdigo para: - ✅ Validar tipo de arquivo (JPEG, PNG, WebP, GIF) - ✅ Validar tamanho (mĂĄx 5MB) - ✅ Mostrar mensagem de erro especĂ­fica - ✅ Limpar input apĂłs upload - ✅ Logs detalhados no console ## 🎯 PrĂłximos Passos Depois que funcionar: 1. **Teste a Galeria no Site** - Abra: `http://localhost:5000/site/` - Clique em um produto - Veja se as fotos extras aparecem 2. **Teste ExclusĂŁo de Fotos** - Volte ao painel admin - Abra "Fotos" de um produto - Passe o mouse sobre uma foto - Clique no "×" vermelho 3. **Verificar Performance** - As fotos carregam rĂĄpido? - A galeria funciona suavemente? ## 📝 Checklist - [ ] Bucket `catalogo` criado ✅ (vocĂȘ jĂĄ fez!) - [ ] Bucket marcado como Public ✅ (vocĂȘ jĂĄ fez!) - [ ] Executar SQL das polĂ­ticas RLS - [ ] Testar upload de foto - [ ] Ver foto no Storage do Supabase - [ ] Ver foto na galeria do site --- **ApĂłs executar o SQL das polĂ­ticas, deve funcionar perfeitamente!** 🚀 Se ainda tiver problemas, compartilhe: 1. Mensagem de erro do console do navegador (F12) 2. Screenshot da aba "Policies" do bucket no Supabase