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