256 lines
7.1 KiB
Markdown
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!**
|