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

4.1 KiB

🚀 Configuração do Supabase - Liberi Kids Estoque

📋 Instruções para Configurar o Banco de Dados

1. Acesse o Supabase Dashboard

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

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