# 🚀 Configuração Completa do Supabase - Liberi Kids

## ✅ Credenciais Configuradas

As credenciais do Supabase foram atualizadas nos arquivos:

- **URL:** `https://ydhzylfnpqlxnzfcclla.supabase.co`
- **Chave:** `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`
- **Bucket:** `produtos`

## 🎉 TABELAS JÁ EXISTEM!

**Ótima notícia!** Você já possui um sistema completo de estoque com todas as tabelas necessárias.

### ⚡ SETUP SUPER RÁPIDO (Recomendado)

**Execute apenas 2 passos:**

1. **Copie todo o conteúdo** do arquivo `sql/supabase-setup.sql`
2. **Cole no SQL Editor** do Supabase e execute
3. **Copie todo o conteúdo** do arquivo `SETUP-RAPIDO-SUPABASE.sql`  
4. **Cole no SQL Editor** do Supabase e execute

**Pronto!** Seu catálogo estará funcionando com dados reais.

### 2. 🗂️ Configurar Storage (Bucket de Imagens)

Execute também o arquivo `sql/supabase-storage.sql`:

```sql
-- Execute todo o conteúdo do arquivo: sql/supabase-storage.sql
```

### 3. 👤 Criar Usuário Admin de Teste

Execute no SQL Editor para criar um usuário admin:

```sql
-- Criar tabela de usuários admin (se não existir)
CREATE TABLE IF NOT EXISTS usuarios_admin (
    id UUID DEFAULT uuid_generate_v4() PRIMARY KEY,
    email VARCHAR(255) NOT NULL UNIQUE,
    senha_hash VARCHAR(255) NOT NULL,
    nome VARCHAR(255) NOT NULL,
    ativo BOOLEAN DEFAULT true,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

-- Inserir usuário da Maiara
INSERT INTO usuarios_admin (email, senha_hash, nome, ativo)
VALUES (
    'maiara.seco@gmail.com',
    'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', -- Hash de '123456'
    'Maiara Seco',
    true
) ON CONFLICT (email) DO NOTHING;
```

### 4. 📊 Inserir Produtos de Teste

```sql
-- Inserir fornecedor de exemplo
INSERT INTO fornecedores (nome, email, telefone, ativo)
VALUES (
    'Liberi Kids Matriz',
    'contato@liberikids.com.br',
    '(43) 99999-9999',
    true
) ON CONFLICT DO NOTHING;

-- Inserir produto de exemplo
INSERT INTO produtos (
    id_produto, marca, nome, descricao, estacao, genero, 
    fornecedor_id, valor_compra, valor_revenda, ativo
)
VALUES (
    'LK001',
    'Liberi Kids',
    'Camiseta Infantil Básica',
    'Camiseta 100% algodão, confortável e durável para o dia a dia',
    'Verão',
    'Unissex',
    (SELECT id FROM fornecedores WHERE nome = 'Liberi Kids Matriz' LIMIT 1),
    15.90,
    29.90,
    true
) ON CONFLICT (id_produto) DO NOTHING;

-- Inserir variações do produto
INSERT INTO produto_variacoes (produto_id, tamanho, cor, quantidade)
VALUES 
    ((SELECT id FROM produtos WHERE id_produto = 'LK001'), '2', 'Azul', 5),
    ((SELECT id FROM produtos WHERE id_produto = 'LK001'), '4', 'Rosa', 3),
    ((SELECT id FROM produtos WHERE id_produto = 'LK001'), '6', 'Branco', 7)
ON CONFLICT (produto_id, tamanho, cor) DO NOTHING;
CREATE TABLE clientes (
    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    nome_completo VARCHAR(255) NOT NULL,
    email VARCHAR(255),
    whatsapp VARCHAR(20) NOT NULL UNIQUE,
    endereco TEXT NOT NULL,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
```

#### Tabela de Pedidos do Catálogo
```sql
CREATE TABLE pedidos_catalogo (
    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    cliente_id UUID REFERENCES clientes(id),
    valor_total DECIMAL(10,2) NOT NULL,
    observacoes TEXT,
    status VARCHAR(20) DEFAULT 'pendente',
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
```

#### Tabela de Itens do Pedido
```sql
CREATE TABLE pedido_catalogo_itens (
    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    pedido_id UUID REFERENCES pedidos_catalogo(id) ON DELETE CASCADE,
    produto_id UUID REFERENCES produtos(id),
    produto_variacao_id UUID REFERENCES produto_variacoes(id),
    quantidade INTEGER NOT NULL,
    valor_unitario DECIMAL(10,2) NOT NULL,
    valor_total DECIMAL(10,2) NOT NULL
);
```

#### Tabela de Usuários Admin
```sql
CREATE TABLE usuarios_admin (
    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    email VARCHAR(255) NOT NULL UNIQUE,
    senha_hash VARCHAR(255) NOT NULL,
    nome VARCHAR(255) NOT NULL,
    ativo BOOLEAN DEFAULT true,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
```

### 2. 🗂️ Configurar Storage

Execute o SQL do arquivo `sql/supabase-storage.sql`:

```sql
-- Criar bucket para imagens de produtos
INSERT INTO storage.buckets (id, name, public, file_size_limit, allowed_mime_types)
VALUES (
  'produtos',
  'produtos',
  true,
  5242880, -- 5MB
  ARRAY['image/jpeg', 'image/png', 'image/webp', 'image/gif']
) ON CONFLICT (id) DO NOTHING;

-- Políticas de acesso (ver arquivo completo)
```

### 3. 👤 Criar Usuário Admin

Execute para criar o usuário da Maiara:

```sql
INSERT INTO usuarios_admin (email, senha_hash, nome, ativo)
VALUES (
    'maiara.seco@gmail.com',
    'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', -- Hash de '123456'
    'Maiara Seco',
    true
);
```

### 4. 🔐 Configurar RLS (Row Level Security)

```sql
-- Habilitar RLS nas tabelas
ALTER TABLE produtos ENABLE ROW LEVEL SECURITY;
ALTER TABLE produto_variacoes ENABLE ROW LEVEL SECURITY;
ALTER TABLE produto_imagens ENABLE ROW LEVEL SECURITY;
ALTER TABLE clientes ENABLE ROW LEVEL SECURITY;

-- Políticas para leitura pública de produtos
CREATE POLICY "Permitir leitura pública de produtos" ON produtos
FOR SELECT USING (ativo = true);

CREATE POLICY "Permitir leitura pública de variações" ON produto_variacoes
FOR SELECT USING (true);

CREATE POLICY "Permitir leitura pública de imagens" ON produto_imagens
FOR SELECT USING (true);
```

### 5. 📊 Inserir Dados de Teste

```sql
-- Produto de exemplo
INSERT INTO produtos (nome, marca, genero, estacao, preco_venda, valor_revenda, descricao, ativo)
VALUES (
    'Camiseta Infantil Básica',
    'Liberi Kids',
    'unissex',
    'verao',
    29.90,
    25.90,
    'Camiseta 100% algodão, confortável e durável',
    true
);

-- Variações do produto (use o ID gerado acima)
INSERT INTO produto_variacoes (produto_id, tamanho, cor, quantidade)
VALUES 
    ((SELECT id FROM produtos WHERE nome = 'Camiseta Infantil Básica'), '2', 'Azul', 5),
    ((SELECT id FROM produtos WHERE nome = 'Camiseta Infantil Básica'), '4', 'Rosa', 3);
```

## 🧪 Testar a Configuração

1. **Abra** `site/index.html` no navegador
2. **Verifique** o console (F12) - deve mostrar "Supabase inicializado"
3. **Teste** o carregamento de produtos reais
4. **Acesse** o admin (clique no logo)
5. **Cadastre** um produto novo

## ⚠️ Problemas Comuns

### Produtos não carregam
- Verifique se as tabelas foram criadas
- Confirme se RLS está configurado
- Veja o console para erros

### Admin não funciona
- Verifique se a tabela `usuarios_admin` existe
- Confirme se o usuário foi inserido
- Teste as credenciais: maiara.seco@gmail.com / 123456

### Upload de imagens falha
- Verifique se o bucket 'produtos' foi criado
- Confirme as políticas de storage
- Teste com imagens pequenas (< 5MB)

## 🎉 Resultado Final

Após a configuração, você terá:

- ✅ Catálogo funcionando com dados reais
- ✅ Sistema de cadastro de produtos
- ✅ Upload de imagens
- ✅ Carrinho e pedidos via WhatsApp
- ✅ Autenticação de clientes e admin

---

**🚀 Seu catálogo está pronto para produção!**
