Usar seed.mjs para produção (sem ts-node)
This commit is contained in:
208
frontend/prisma/seed.mjs
Normal file
208
frontend/prisma/seed.mjs
Normal file
@@ -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);
|
||||
});
|
||||
Reference in New Issue
Block a user