From c8da32e279ac6a54690296c381a21858f5b60229 Mon Sep 17 00:00:00 2001 From: Erik Date: Wed, 26 Nov 2025 15:20:43 -0300 Subject: [PATCH] =?UTF-8?q?Usar=20seed.mjs=20para=20produ=C3=A7=C3=A3o=20(?= =?UTF-8?q?sem=20ts-node)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/package.json | 2 +- frontend/prisma/seed.mjs | 208 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 frontend/prisma/seed.mjs diff --git a/frontend/package.json b/frontend/package.json index 9e6594b..142428e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -10,7 +10,7 @@ "lint": "eslint" }, "prisma": { - "seed": "ts-node --compiler-options {\"module\":\"CommonJS\"} prisma/seed.ts" + "seed": "node prisma/seed.mjs" }, "dependencies": { "@prisma/client": "^5.22.0", diff --git a/frontend/prisma/seed.mjs b/frontend/prisma/seed.mjs new file mode 100644 index 0000000..eada730 --- /dev/null +++ b/frontend/prisma/seed.mjs @@ -0,0 +1,208 @@ +import { PrismaClient } from '@prisma/client'; +import bcrypt from 'bcryptjs'; + +const prisma = new PrismaClient(); + +async function main() { + console.log('đŸŒ± Iniciando seed de dados iniciais...\n'); + + // 1. Criar usuĂĄrio admin + const email = 'admin@occto.com'; + const password = 'admin'; + const hashedPassword = await bcrypt.hash(password, 10); + + const user = await prisma.user.upsert({ + where: { email }, + update: {}, + create: { + email, + name: 'Admin Occto', + password: hashedPassword, + }, + }); + + console.log('✅ UsuĂĄrio admin criado:', user.email); + + // 2. Seed para pĂĄgina Home + const homePage = await prisma.pageContent.upsert({ + where: { slug: 'home' }, + update: {}, + create: { + slug: 'home', + content: { + hero: { + title: 'Engenharia de ExcelĂȘncia para Seus Projetos', + subtitle: 'SoluçÔes completas em engenharia veicular, mecĂąnica e segurança do trabalho com mais de 15 anos de experiĂȘncia.', + buttonText: 'Conheça Nossos Serviços' + }, + features: { + pretitle: 'Por que nos escolher', + title: 'Nossos Diferenciais', + items: [ + { + icon: 'ri-shield-star-line', + title: 'Qualidade Garantida', + description: 'Processos certificados e equipe altamente qualificada para garantir excelĂȘncia em cada projeto.' + }, + { + icon: 'ri-settings-4-line', + title: 'SoluçÔes Personalizadas', + description: 'Atendimento sob medida para as necessidades especĂ­ficas de cada cliente e projeto.' + }, + { + icon: 'ri-truck-line', + title: 'Especialização Veicular', + description: 'Expertise consolidada em engenharia automotiva e de frotas, com foco em segurança e eficiĂȘncia.' + } + ] + }, + services: { + pretitle: 'Nossos Serviços', + title: 'O Que Fazemos', + items: [ + { + icon: 'ri-draft-line', + title: 'Projetos TĂ©cnicos', + description: 'Desenvolvimento de projetos de engenharia com documentação completa e aprovaçÔes necessĂĄrias.' + }, + { + icon: 'ri-file-paper-2-line', + title: 'Laudos e PerĂ­cias', + description: 'EmissĂŁo de laudos tĂ©cnicos e realização de perĂ­cias especializadas em engenharia.' + }, + { + icon: 'ri-alert-line', + title: 'Segurança do Trabalho', + description: 'Implementação de normas e procedimentos de segurança conforme legislação vigente.' + }, + { + icon: 'ri-truck-fill', + title: 'Engenharia Veicular', + description: 'ModificaçÔes, adaptaçÔes e adequaçÔes de veĂ­culos comerciais e especiais.' + } + ] + }, + about: { + pretitle: 'Conheça a OCCTO', + title: 'Sobre NĂłs', + description: 'Com mais de 15 anos de experiĂȘncia, a OCCTO Engenharia se consolidou como referĂȘncia em soluçÔes de engenharia para o setor automotivo e industrial. Nossa equipe de especialistas estĂĄ comprometida em entregar projetos de excelĂȘncia, sempre priorizando segurança, qualidade e inovação.', + highlights: [ + 'Mais de 500 clientes atendidos', + 'Equipe tĂ©cnica altamente qualificada', + 'Parceiro oficial de grandes empresas' + ] + }, + testimonials: { + pretitle: 'Depoimentos', + title: 'O Que Dizem Nossos Clientes', + items: [ + { + name: 'Ricardo Mendes', + role: 'Gerente de Frota - Coca-Cola', + text: 'Excelente trabalho! A OCCTO realizou todas as adequaçÔes da nossa frota com qualidade e dentro do prazo. Equipe muito profissional.' + }, + { + name: 'Fernanda Costa', + role: 'Diretora de OperaçÔes - Log Express', + text: 'Parceria de confiança. Os projetos sĂŁo sempre bem elaborados e atendem todas as nossas necessidades tĂ©cnicas e regulatĂłrias.' + }, + { + name: 'Paulo Oliveira', + role: 'Engenheiro Chefe - AutoTrans', + text: 'Conhecimento tĂ©cnico incomparĂĄvel. A consultoria da OCCTO foi fundamental para otimizar nossos processos e garantir conformidade total.' + } + ] + }, + stats: { + clients: '500+', + projects: '1200+', + years: '15' + }, + cta: { + title: 'Pronto para tirar seu projeto do papel?', + text: 'Entre em contato com nossa equipe de especialistas e solicite um orçamento sem compromisso.', + button: 'Fale Conosco' + } + } + } + }); + + console.log('✅ PĂĄgina Home criada:', homePage.slug); + + // 3. Seed para pĂĄgina Sobre + const sobrePage = await prisma.pageContent.upsert({ + where: { slug: 'sobre' }, + update: {}, + create: { + slug: 'sobre', + content: { + hero: { + title: 'Sobre a OCCTO Engenharia', + subtitle: 'ExcelĂȘncia tĂ©cnica e comprometimento com resultados desde 2009' + }, + mission: { + title: 'Nossa MissĂŁo', + text: 'Fornecer soluçÔes de engenharia de alta qualidade, garantindo segurança, eficiĂȘncia e conformidade em todos os projetos que realizamos.' + }, + vision: { + title: 'Nossa VisĂŁo', + text: 'Ser referĂȘncia nacional em engenharia veicular e segurança do trabalho, reconhecidos pela excelĂȘncia tĂ©cnica e inovação.' + }, + values: { + title: 'Nossos Valores', + items: [ + 'Compromisso com a qualidade', + 'Ética profissional', + 'Inovação constante', + 'Respeito ao cliente', + 'Segurança em primeiro lugar' + ] + } + } + } + }); + + console.log('✅ PĂĄgina Sobre criada:', sobrePage.slug); + + // 4. Seed para pĂĄgina Contato + const contatoPage = await prisma.pageContent.upsert({ + where: { slug: 'contato' }, + update: {}, + create: { + slug: 'contato', + content: { + hero: { + title: 'Entre em Contato', + subtitle: 'Nossa equipe estĂĄ pronta para atender suas necessidades' + }, + info: { + address: { + street: 'Rua Exemplo, 123', + neighborhood: 'Centro', + city: 'SĂŁo Paulo', + state: 'SP', + zip: '01234-567' + }, + phone: '(11) 9999-9999', + email: 'contato@occto.com.br', + hours: 'Segunda a Sexta: 8h Ă s 18h' + } + } + } + }); + + console.log('✅ PĂĄgina Contato criada:', contatoPage.slug); + + console.log('\n🎉 Seed concluĂ­do com sucesso!'); + console.log('📊 Total: 1 usuĂĄrio + 3 pĂĄginas criadas\n'); +} + +main() + .then(async () => { + await prisma.$disconnect(); + }) + .catch(async (e) => { + console.error(e); + await prisma.$disconnect(); + process.exit(1); + });