chore: sincroniza projeto para gitea

This commit is contained in:
Tiago
2025-11-29 21:31:52 -03:00
parent 33d8645eb4
commit 7e7a0f8867
129 changed files with 24999 additions and 6757 deletions

173
SOLUCAO-ERRO-UPLOAD.md Normal file
View File

@@ -0,0 +1,173 @@
# 🔧 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