149 lines
4.1 KiB
Markdown
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! 🎉**
|