# 🔧 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
