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

View File

@@ -0,0 +1,163 @@
# 📸 Como Criar o Bucket 'catalogo' - Passo a Passo
## ❌ Problema
Ao tentar adicionar fotos em **Site / Catalogo**, aparece erro porque o bucket `catalogo` não existe.
## ✅ Solução Rápida (5 minutos)
### 🎯 Opção 1: Via Interface (Mais Fácil)
1. **Acesse o Supabase Dashboard**
- URL: https://supabase.com/dashboard
- Faça login com sua conta
2. **Selecione seu Projeto**
- Clique no projeto "Liberi Kids" (ou o nome que você deu)
3. **Vá para Storage**
- No menu lateral esquerdo, clique em **"Storage"**
- Clique no botão **"Create a new bucket"** (ou "New bucket")
4. **Configure o Bucket**
- **Name:** `catalogo` (exatamente assim, minúsculo)
- **Public bucket:** ✅ **MARQUE ESTA OPÇÃO** (muito importante!)
- **File size limit:** `5` MB
- **Allowed MIME types:** (deixe vazio ou adicione):
- `image/jpeg`
- `image/jpg`
- `image/png`
- `image/webp`
- `image/gif`
5. **Criar o Bucket**
- Clique em **"Create bucket"**
- Aguarde a confirmação
6. **Configurar Políticas de Segurança (IMPORTANTE!)**
- Vá em **SQL Editor** (menu lateral)
- Clique em **"New Query"**
- Cole o código abaixo:
```sql
-- Política de leitura pública
CREATE POLICY "Permitir leitura pública catalogo"
ON storage.objects FOR SELECT
USING (bucket_id = 'catalogo');
-- Política de upload
CREATE POLICY "Permitir upload autenticado catalogo"
ON storage.objects FOR INSERT
WITH CHECK (
bucket_id = 'catalogo' AND
(auth.role() = 'authenticated' OR auth.role() = 'service_role')
);
-- Política de atualização
CREATE POLICY "Permitir update autenticado catalogo"
ON storage.objects FOR UPDATE
USING (
bucket_id = 'catalogo' AND
(auth.role() = 'authenticated' OR auth.role() = 'service_role')
);
-- Política de exclusão
CREATE POLICY "Permitir delete autenticado catalogo"
ON storage.objects FOR DELETE
USING (
bucket_id = 'catalogo' AND
(auth.role() = 'authenticated' OR auth.role() = 'service_role')
);
```
- Clique em **"Run"** (ou F5)
- Aguarde a mensagem de sucesso
7. **Testar**
- Volte para o sistema
- Acesse **Site / Catalogo**
- Clique em **"Fotos"** em qualquer produto
- Tente adicionar uma foto
- Deve funcionar! ✅
---
### 🎯 Opção 2: Via SQL (Mais Rápido se você sabe SQL)
1. **Acesse o Supabase Dashboard**
2. **Vá em SQL Editor**
3. **Copie todo o arquivo:** `sql/setup-bucket-catalogo.sql`
4. **Cole no editor**
5. **Execute (Run)**
6. **Verifique as mensagens de sucesso**
---
## 🔍 Verificar se Funcionou
Execute este comando para testar:
```bash
node test-upload-catalogo.js
```
Se aparecer:
```
✅ Bucket "catalogo" existe!
✅ Upload teste realizado com sucesso!
🎉 TODOS OS TESTES PASSARAM!
```
**Então está tudo certo!**
---
## ❓ Troubleshooting
### Erro: "new row violates row-level security policy"
**Causa:** Políticas RLS não configuradas
**Solução:** Execute o passo 6 acima (políticas SQL)
### Erro: "Bucket already exists"
**Causa:** Bucket já foi criado
**Solução:** Pule para o passo 6 (configurar políticas)
### Upload ainda não funciona
**Verifique:**
1. ✅ Bucket marcado como "Public"
2. ✅ Políticas RLS criadas
3. ✅ Servidor reiniciado (se necessário)
### Fotos não aparecem no site
**Verifique:**
1. ✅ Bucket é público
2. ✅ URL correta: `https://...supabase.co/storage/v1/object/public/catalogo/...`
---
## 📋 Checklist Final
Antes de usar o sistema de fotos, verifique:
- [ ] Bucket `catalogo` criado
- [ ] Bucket marcado como **Public**
- [ ] Limite de 5MB configurado
- [ ] 4 políticas RLS criadas (SELECT, INSERT, UPDATE, DELETE)
- [ ] Teste executado com sucesso
- [ ] Upload funciona no painel admin
- [ ] Fotos aparecem no site público
---
## 🎉 Pronto!
Depois de seguir estes passos, o sistema de fotos adicionais estará funcionando perfeitamente!
**Você poderá:**
- ✅ Adicionar fotos extras para cada produto
- ✅ Ver galeria completa no site
- ✅ Gerenciar fotos pelo painel admin
- ✅ Deletar fotos individuais
---
**Precisa de ajuda?** Verifique os logs do navegador (F12 > Console) para ver erros específicos.