Files
App-Estoque-LiberiKids/SUPABASE-SETUP.md
2025-10-14 14:04:17 -03:00

149 lines
4.1 KiB
Markdown

# 🚀 Configuração do Supabase - Liberi Kids Estoque
## 📋 Instruções para Configurar o Banco de Dados
### 1. **Acesse o Supabase Dashboard**
- Vá para: https://xyqmlesqdqybiyjofysb.supabase.co
- Faça login na sua conta
### 2. **Execute o Script SQL**
1. No dashboard do Supabase, vá para **SQL Editor**
2. Clique em **New Query**
3. Copie e cole todo o conteúdo do arquivo `sql/create-tables.sql`
4. Clique em **Run** para executar
### 3. **Criar Função de Atualização de Estoque**
1. Ainda no SQL Editor, crie uma nova query
2. Copie e cole o conteúdo do arquivo `sql/functions.sql`
3. Execute a query
### 4. **Verificar Tabelas Criadas**
1. Vá para **Table Editor** no menu lateral
2. Você deve ver as seguintes tabelas:
-`fornecedores`
-`produtos`
-`produto_variacoes`
-`clientes`
-`tipos_despesas`
-`despesas`
-`vendas`
-`venda_itens`
### 5. **Configurar Políticas RLS (Row Level Security)**
As políticas já estão incluídas no script SQL, mas você pode ajustá-las conforme necessário:
1. Vá para **Authentication** > **Policies**
2. Verifique se todas as tabelas têm políticas habilitadas
3. As políticas atuais permitem todas as operações para usuários autenticados
### 6. **Testar a Conexão**
1. Inicie o servidor: `npm start`
2. Acesse: http://localhost:5000
3. Clique no botão "Testar API" na página de produtos
4. Deve aparecer: "API Supabase funcionando corretamente!"
## 🔧 **Estrutura das Tabelas**
### **Fornecedores**
- `id` (UUID, PK)
- `razao_social` (TEXT, NOT NULL)
- `telefone`, `whatsapp`, `endereco`, `email` (TEXT)
- `created_at`, `updated_at` (TIMESTAMP)
### **Produtos**
- `id` (UUID, PK)
- `id_produto` (TEXT) - ID personalizado
- `marca`, `nome` (TEXT, NOT NULL)
- `estacao` (TEXT, NOT NULL)
- `genero` (TEXT, DEFAULT 'Unissex')
- `fornecedor_id` (UUID, FK)
- `valor_compra`, `valor_revenda` (DECIMAL)
- `foto_principal_url` (TEXT)
- `created_at`, `updated_at` (TIMESTAMP)
### **Produto Variações**
- `id` (UUID, PK)
- `produto_id` (UUID, FK, NOT NULL)
- `tamanho`, `cor` (TEXT, NOT NULL)
- `quantidade` (INTEGER, DEFAULT 0)
- `foto_url` (TEXT)
- `created_at`, `updated_at` (TIMESTAMP)
### **Clientes**
- `id` (UUID, PK)
- `nome_completo` (TEXT, NOT NULL)
- `email`, `telefone`, `whatsapp`, `endereco` (TEXT)
- `created_at`, `updated_at` (TIMESTAMP)
### **Tipos de Despesas**
- `id` (UUID, PK)
- `nome` (TEXT, NOT NULL, UNIQUE)
- `descricao` (TEXT)
- `created_at` (TIMESTAMP)
### **Despesas**
- `id` (UUID, PK)
- `tipo_despesa_id` (UUID, FK, NOT NULL)
- `fornecedor_id` (UUID, FK)
- `data_despesa` (DATE, NOT NULL)
- `valor` (DECIMAL, NOT NULL)
- `descricao` (TEXT)
- `created_at`, `updated_at` (TIMESTAMP)
### **Vendas**
- `id` (UUID, PK)
- `cliente_id` (UUID, FK)
- `tipo_pagamento` (TEXT, CHECK: 'vista' ou 'parcelado')
- `valor_total` (DECIMAL, NOT NULL)
- `desconto` (DECIMAL, DEFAULT 0)
- `parcelas` (INTEGER, DEFAULT 1)
- `valor_parcela` (DECIMAL, DEFAULT 0)
- `data_venda` (DATE, NOT NULL)
- `observacoes` (TEXT)
- `created_at`, `updated_at` (TIMESTAMP)
### **Venda Itens**
- `id` (UUID, PK)
- `venda_id` (UUID, FK, NOT NULL)
- `produto_id` (UUID, FK, NOT NULL)
- `variacao_id` (UUID, FK)
- `quantidade` (INTEGER, NOT NULL)
- `valor_unitario`, `valor_total` (DECIMAL, NOT NULL)
- `created_at` (TIMESTAMP)
## 🎯 **Vantagens do Supabase**
**Banco PostgreSQL robusto**
**Backup automático**
**Escalabilidade**
**Interface web para gerenciamento**
**APIs REST automáticas**
**Segurança com RLS**
**Sem problemas de concorrência**
## 🚨 **Comandos Importantes**
```bash
# Iniciar com Supabase (padrão)
npm start
# Iniciar com SQLite (backup)
npm run start-sqlite
# Desenvolvimento com Supabase
npm run dev
# Testar conexão com Supabase
npm run init-supabase
```
## 📞 **Suporte**
Se houver algum problema:
1. Verifique se as tabelas foram criadas corretamente
2. Confirme se as políticas RLS estão ativas
3. Teste a conexão com o botão "Testar API"
4. Verifique os logs do servidor no terminal
**O sistema agora está usando Supabase e deve funcionar perfeitamente! 🎉**