Files
App-Estoque-LiberiKids/SUPABASE-SETUP-COMPLETO.md
2025-11-29 21:31:52 -03:00

256 lines
7.1 KiB
Markdown

# 🚀 Configuração Completa do Supabase - Liberi Kids
## ✅ Credenciais Configuradas
As credenciais do Supabase foram atualizadas nos arquivos:
- **URL:** `https://ydhzylfnpqlxnzfcclla.supabase.co`
- **Chave:** `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`
- **Bucket:** `produtos`
## 🎉 TABELAS JÁ EXISTEM!
**Ótima notícia!** Você já possui um sistema completo de estoque com todas as tabelas necessárias.
### ⚡ SETUP SUPER RÁPIDO (Recomendado)
**Execute apenas 2 passos:**
1. **Copie todo o conteúdo** do arquivo `sql/supabase-setup.sql`
2. **Cole no SQL Editor** do Supabase e execute
3. **Copie todo o conteúdo** do arquivo `SETUP-RAPIDO-SUPABASE.sql`
4. **Cole no SQL Editor** do Supabase e execute
**Pronto!** Seu catálogo estará funcionando com dados reais.
### 2. 🗂️ Configurar Storage (Bucket de Imagens)
Execute também o arquivo `sql/supabase-storage.sql`:
```sql
-- Execute todo o conteúdo do arquivo: sql/supabase-storage.sql
```
### 3. 👤 Criar Usuário Admin de Teste
Execute no SQL Editor para criar um usuário admin:
```sql
-- Criar tabela de usuários admin (se não existir)
CREATE TABLE IF NOT EXISTS usuarios_admin (
id UUID DEFAULT uuid_generate_v4() PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
senha_hash VARCHAR(255) NOT NULL,
nome VARCHAR(255) NOT NULL,
ativo BOOLEAN DEFAULT true,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Inserir usuário da Maiara
INSERT INTO usuarios_admin (email, senha_hash, nome, ativo)
VALUES (
'maiara.seco@gmail.com',
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', -- Hash de '123456'
'Maiara Seco',
true
) ON CONFLICT (email) DO NOTHING;
```
### 4. 📊 Inserir Produtos de Teste
```sql
-- Inserir fornecedor de exemplo
INSERT INTO fornecedores (nome, email, telefone, ativo)
VALUES (
'Liberi Kids Matriz',
'contato@liberikids.com.br',
'(43) 99999-9999',
true
) ON CONFLICT DO NOTHING;
-- Inserir produto de exemplo
INSERT INTO produtos (
id_produto, marca, nome, descricao, estacao, genero,
fornecedor_id, valor_compra, valor_revenda, ativo
)
VALUES (
'LK001',
'Liberi Kids',
'Camiseta Infantil Básica',
'Camiseta 100% algodão, confortável e durável para o dia a dia',
'Verão',
'Unissex',
(SELECT id FROM fornecedores WHERE nome = 'Liberi Kids Matriz' LIMIT 1),
15.90,
29.90,
true
) ON CONFLICT (id_produto) DO NOTHING;
-- Inserir variações do produto
INSERT INTO produto_variacoes (produto_id, tamanho, cor, quantidade)
VALUES
((SELECT id FROM produtos WHERE id_produto = 'LK001'), '2', 'Azul', 5),
((SELECT id FROM produtos WHERE id_produto = 'LK001'), '4', 'Rosa', 3),
((SELECT id FROM produtos WHERE id_produto = 'LK001'), '6', 'Branco', 7)
ON CONFLICT (produto_id, tamanho, cor) DO NOTHING;
CREATE TABLE clientes (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
nome_completo VARCHAR(255) NOT NULL,
email VARCHAR(255),
whatsapp VARCHAR(20) NOT NULL UNIQUE,
endereco TEXT NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
```
#### Tabela de Pedidos do Catálogo
```sql
CREATE TABLE pedidos_catalogo (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
cliente_id UUID REFERENCES clientes(id),
valor_total DECIMAL(10,2) NOT NULL,
observacoes TEXT,
status VARCHAR(20) DEFAULT 'pendente',
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
```
#### Tabela de Itens do Pedido
```sql
CREATE TABLE pedido_catalogo_itens (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
pedido_id UUID REFERENCES pedidos_catalogo(id) ON DELETE CASCADE,
produto_id UUID REFERENCES produtos(id),
produto_variacao_id UUID REFERENCES produto_variacoes(id),
quantidade INTEGER NOT NULL,
valor_unitario DECIMAL(10,2) NOT NULL,
valor_total DECIMAL(10,2) NOT NULL
);
```
#### Tabela de Usuários Admin
```sql
CREATE TABLE usuarios_admin (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
senha_hash VARCHAR(255) NOT NULL,
nome VARCHAR(255) NOT NULL,
ativo BOOLEAN DEFAULT true,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
```
### 2. 🗂️ Configurar Storage
Execute o SQL do arquivo `sql/supabase-storage.sql`:
```sql
-- Criar bucket para imagens de produtos
INSERT INTO storage.buckets (id, name, public, file_size_limit, allowed_mime_types)
VALUES (
'produtos',
'produtos',
true,
5242880, -- 5MB
ARRAY['image/jpeg', 'image/png', 'image/webp', 'image/gif']
) ON CONFLICT (id) DO NOTHING;
-- Políticas de acesso (ver arquivo completo)
```
### 3. 👤 Criar Usuário Admin
Execute para criar o usuário da Maiara:
```sql
INSERT INTO usuarios_admin (email, senha_hash, nome, ativo)
VALUES (
'maiara.seco@gmail.com',
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', -- Hash de '123456'
'Maiara Seco',
true
);
```
### 4. 🔐 Configurar RLS (Row Level Security)
```sql
-- Habilitar RLS nas tabelas
ALTER TABLE produtos ENABLE ROW LEVEL SECURITY;
ALTER TABLE produto_variacoes ENABLE ROW LEVEL SECURITY;
ALTER TABLE produto_imagens ENABLE ROW LEVEL SECURITY;
ALTER TABLE clientes ENABLE ROW LEVEL SECURITY;
-- Políticas para leitura pública de produtos
CREATE POLICY "Permitir leitura pública de produtos" ON produtos
FOR SELECT USING (ativo = true);
CREATE POLICY "Permitir leitura pública de variações" ON produto_variacoes
FOR SELECT USING (true);
CREATE POLICY "Permitir leitura pública de imagens" ON produto_imagens
FOR SELECT USING (true);
```
### 5. 📊 Inserir Dados de Teste
```sql
-- Produto de exemplo
INSERT INTO produtos (nome, marca, genero, estacao, preco_venda, valor_revenda, descricao, ativo)
VALUES (
'Camiseta Infantil Básica',
'Liberi Kids',
'unissex',
'verao',
29.90,
25.90,
'Camiseta 100% algodão, confortável e durável',
true
);
-- Variações do produto (use o ID gerado acima)
INSERT INTO produto_variacoes (produto_id, tamanho, cor, quantidade)
VALUES
((SELECT id FROM produtos WHERE nome = 'Camiseta Infantil Básica'), '2', 'Azul', 5),
((SELECT id FROM produtos WHERE nome = 'Camiseta Infantil Básica'), '4', 'Rosa', 3);
```
## 🧪 Testar a Configuração
1. **Abra** `site/index.html` no navegador
2. **Verifique** o console (F12) - deve mostrar "Supabase inicializado"
3. **Teste** o carregamento de produtos reais
4. **Acesse** o admin (clique no logo)
5. **Cadastre** um produto novo
## ⚠️ Problemas Comuns
### Produtos não carregam
- Verifique se as tabelas foram criadas
- Confirme se RLS está configurado
- Veja o console para erros
### Admin não funciona
- Verifique se a tabela `usuarios_admin` existe
- Confirme se o usuário foi inserido
- Teste as credenciais: maiara.seco@gmail.com / 123456
### Upload de imagens falha
- Verifique se o bucket 'produtos' foi criado
- Confirme as políticas de storage
- Teste com imagens pequenas (< 5MB)
## 🎉 Resultado Final
Após a configuração, você terá:
- ✅ Catálogo funcionando com dados reais
- ✅ Sistema de cadastro de produtos
- ✅ Upload de imagens
- ✅ Carrinho e pedidos via WhatsApp
- ✅ Autenticação de clientes e admin
---
**🚀 Seu catálogo está pronto para produção!**