# 🚀 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! 🎉**