-- ============================================= -- SETUP RÁPIDO SUPABASE - LIBERI KIDS CATÁLOGO -- Execute este script completo no SQL Editor do Supabase -- ============================================= -- 1. EXECUTAR PRIMEIRO: Estrutura completa das tabelas -- (Cole aqui todo o conteúdo do arquivo sql/supabase-setup.sql) -- 2. CONFIGURAR STORAGE PARA IMAGENS 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 ao storage CREATE POLICY "Permitir upload de imagens de produtos" ON storage.objects FOR INSERT WITH CHECK ( bucket_id = 'produtos' AND auth.role() = 'authenticated' ); CREATE POLICY "Permitir leitura pública de imagens de produtos" ON storage.objects FOR SELECT USING (bucket_id = 'produtos'); CREATE POLICY "Permitir atualização de imagens de produtos" ON storage.objects FOR UPDATE WITH CHECK ( bucket_id = 'produtos' AND auth.role() = 'authenticated' ); CREATE POLICY "Permitir exclusão de imagens de produtos" ON storage.objects FOR DELETE USING ( bucket_id = 'produtos' AND auth.role() = 'authenticated' ); -- 3. CRIAR TABELA DE USUÁRIOS ADMIN 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() ); -- 4. INSERIR USUÁRIO ADMIN 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; -- 5. INSERIR DADOS DE TESTE -- 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; -- Produtos 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 ), ( 'LK002', 'Liberi Kids', 'Vestido Floral Menina', 'Vestido lindo com estampa floral, perfeito para ocasiões especiais', 'Primavera', 'Feminino', (SELECT id FROM fornecedores WHERE nome = 'Liberi Kids Matriz' LIMIT 1), 25.90, 49.90, true ), ( 'LK003', 'Liberi Kids', 'Bermuda Jeans Menino', 'Bermuda jeans resistente e confortável para brincadeiras', 'Verão', 'Masculino', (SELECT id FROM fornecedores WHERE nome = 'Liberi Kids Matriz' LIMIT 1), 20.90, 39.90, true ) ON CONFLICT (id_produto) DO NOTHING; -- Variações dos produtos INSERT INTO produto_variacoes (produto_id, tamanho, cor, quantidade) VALUES -- Camiseta Básica ((SELECT id FROM produtos WHERE id_produto = 'LK001'), '2', 'Azul', 5), ((SELECT id FROM produtos WHERE id_produto = 'LK001'), '2', 'Rosa', 3), ((SELECT id FROM produtos WHERE id_produto = 'LK001'), '4', 'Azul', 7), ((SELECT id FROM produtos WHERE id_produto = 'LK001'), '4', 'Rosa', 4), ((SELECT id FROM produtos WHERE id_produto = 'LK001'), '6', 'Branco', 6), -- Vestido Floral ((SELECT id FROM produtos WHERE id_produto = 'LK002'), '2', 'Rosa', 3), ((SELECT id FROM produtos WHERE id_produto = 'LK002'), '4', 'Rosa', 5), ((SELECT id FROM produtos WHERE id_produto = 'LK002'), '6', 'Lilás', 4), ((SELECT id FROM produtos WHERE id_produto = 'LK002'), '8', 'Rosa', 2), -- Bermuda Jeans ((SELECT id FROM produtos WHERE id_produto = 'LK003'), '2', 'Azul', 4), ((SELECT id FROM produtos WHERE id_produto = 'LK003'), '4', 'Azul', 6), ((SELECT id FROM produtos WHERE id_produto = 'LK003'), '6', 'Azul', 3), ((SELECT id FROM produtos WHERE id_produto = 'LK003'), '8', 'Preto', 5) ON CONFLICT (produto_id, tamanho, cor) DO NOTHING; -- Cliente de exemplo INSERT INTO clientes (nome_completo, email, whatsapp, endereco, ativo) VALUES ( 'Cliente Teste', 'cliente@teste.com', '43999999999', 'Rua Teste, 123 - Centro - Londrina/PR', true ) ON CONFLICT (whatsapp) DO NOTHING; -- ============================================= -- VERIFICAÇÕES FINAIS -- ============================================= -- Verificar se tudo foi criado corretamente SELECT 'Produtos criados:' as status, COUNT(*) as total FROM produtos WHERE ativo = true; SELECT 'Variações criadas:' as status, COUNT(*) as total FROM produto_variacoes; SELECT 'Fornecedores criados:' as status, COUNT(*) as total FROM fornecedores WHERE ativo = true; SELECT 'Usuários admin criados:' as status, COUNT(*) as total FROM usuarios_admin WHERE ativo = true; SELECT 'Clientes criados:' as status, COUNT(*) as total FROM clientes WHERE ativo = true; -- Verificar buckets de storage SELECT 'Buckets criados:' as status, COUNT(*) as total FROM storage.buckets WHERE name = 'produtos'; -- ============================================= -- INSTRUÇÕES FINAIS -- ============================================= /* 🎉 CONFIGURAÇÃO CONCLUÍDA! Próximos passos: 1. ✅ Execute este script completo no SQL Editor 2. ✅ Verifique se não há erros 3. ✅ Abra site/index.html no navegador 4. ✅ Teste o carregamento de produtos 5. ✅ Acesse o admin: clique no logo 6. ✅ Login: maiara.seco@gmail.com / 123456 O catálogo agora está funcionando com dados reais! */