209 lines
7.0 KiB
TypeScript
209 lines
7.0 KiB
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
import * as 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);
|
|
});
|