chore: sincroniza projeto para gitea
This commit is contained in:
255
SUPABASE-SETUP-COMPLETO.md
Normal file
255
SUPABASE-SETUP-COMPLETO.md
Normal file
@@ -0,0 +1,255 @@
|
||||
# 🚀 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!**
|
||||
Reference in New Issue
Block a user