Files
App-Estoque-LiberiKids/SUPABASE-SETUP-COMPLETO.md
2025-11-29 21:31:52 -03:00

7.1 KiB

🚀 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:

-- 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:

-- 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

-- 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()
);
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

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

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:

-- 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:

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)

-- 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

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