193 lines
10 KiB
TypeScript
193 lines
10 KiB
TypeScript
import { PrismaClient } from '@prisma/client';
|
||
import bcrypt from 'bcryptjs';
|
||
|
||
const prisma = new PrismaClient();
|
||
|
||
async function main() {
|
||
console.log('🌱 Seeding database...');
|
||
|
||
// Создаем пользователей
|
||
const adminPassword = await bcrypt.hash('admin123', 10);
|
||
const editorPassword = await bcrypt.hash('editor123', 10);
|
||
|
||
const admin = await prisma.user.upsert({
|
||
where: { email: 'admin@ckeproekt.ru' },
|
||
update: {},
|
||
create: {
|
||
email: 'admin@ckeproekt.ru',
|
||
username: 'admin',
|
||
password: adminPassword,
|
||
role: 'ADMIN',
|
||
name: 'Администратор',
|
||
},
|
||
});
|
||
|
||
const editor = await prisma.user.upsert({
|
||
where: { email: 'editor@ckeproekt.ru' },
|
||
update: {},
|
||
create: {
|
||
email: 'editor@ckeproekt.ru',
|
||
username: 'editor',
|
||
password: editorPassword,
|
||
role: 'EDITOR',
|
||
name: 'Редактор',
|
||
},
|
||
});
|
||
|
||
// Создаем категории
|
||
const categories = [
|
||
{ name: 'Строительная экспертиза', slug: 'construction-expertise', color: '#3B82F6' },
|
||
{ name: 'Экспертиза залива', slug: 'flood-expertise', color: '#EF4444' },
|
||
{ name: 'Тепловизионная экспертиза', slug: 'thermal-expertise', color: '#F59E0B' },
|
||
{ name: 'Обследование канализации', slug: 'sewerage-inspection', color: '#10B981' },
|
||
{ name: 'Общие новости', slug: 'general-news', color: '#8B5CF6' },
|
||
];
|
||
|
||
for (const category of categories) {
|
||
await prisma.category.upsert({
|
||
where: { slug: category.slug },
|
||
update: {},
|
||
create: category,
|
||
});
|
||
}
|
||
|
||
// Создаем тестовые новости
|
||
const newsData = [
|
||
{
|
||
title: 'Новые стандарты строительной экспертизы в 2024 году',
|
||
slug: 'new-construction-standards-2024',
|
||
summary: 'Обзор изменений в нормативах и требованиях к проведению строительно-технической экспертизы.',
|
||
content: `
|
||
<p>В 2024 году вступили в силу новые стандарты проведения строительно-технической экспертизы, которые значительно повышают требования к качеству и точности исследований.</p>
|
||
|
||
<h3>Основные изменения:</h3>
|
||
<ul>
|
||
<li>Усиление требований к квалификации экспертов</li>
|
||
<li>Новые методы неразрушающего контроля</li>
|
||
<li>Цифровизация процесса документооборота</li>
|
||
<li>Обязательное использование современного оборудования</li>
|
||
</ul>
|
||
|
||
<p>Наша компания ЦКЭ Проект полностью соответствует новым требованиям и готова предоставить услуги экспертизы на самом высоком уровне.</p>
|
||
`,
|
||
category: 'Строительная экспертиза',
|
||
imageUrl: '/images/placeholders/services/construction-control.jpg',
|
||
featured: true,
|
||
authorId: admin.id,
|
||
tags: 'стандарты, экспертиза, 2024, нормативы',
|
||
},
|
||
{
|
||
title: 'Как правильно провести экспертизу после залива квартиры',
|
||
slug: 'flood-damage-expertise-guide',
|
||
summary: 'Пошаговое руководство по проведению экспертизы ущерба от залива и оценке восстановительных работ.',
|
||
content: `
|
||
<p>Залив квартиры – это серьезная проблема, которая требует немедленного и профессионального подхода к оценке ущерба.</p>
|
||
|
||
<h3>Этапы проведения экспертизы:</h3>
|
||
<ol>
|
||
<li><strong>Фиксация первоначального состояния</strong> - фотографирование и документирование повреждений</li>
|
||
<li><strong>Оценка конструктивных элементов</strong> - проверка состояния стен, полов, потолков</li>
|
||
<li><strong>Исследование инженерных систем</strong> - проверка электропроводки, отопления, водоснабжения</li>
|
||
<li><strong>Определение объема восстановительных работ</strong> - составление сметы на ремонт</li>
|
||
</ol>
|
||
|
||
<p>Важно помнить, что экспертизу должны проводить только аккредитованные специалисты с соответствующей квалификацией.</p>
|
||
`,
|
||
category: 'Экспертиза залива',
|
||
imageUrl: '/images/placeholders/services/flood-expertise.jpg',
|
||
featured: true,
|
||
authorId: editor.id,
|
||
tags: 'залив, экспертиза, ущерб, восстановление',
|
||
},
|
||
{
|
||
title: 'Тепловизионная диагностика: современные возможности',
|
||
slug: 'thermal-imaging-diagnostics',
|
||
summary: 'Применение тепловизионного оборудования для выявления скрытых дефектов в строительных конструкциях.',
|
||
content: `
|
||
<p>Тепловизионная диагностика является одним из наиболее эффективных методов неразрушающего контроля строительных конструкций.</p>
|
||
|
||
<h3>Преимущества метода:</h3>
|
||
<ul>
|
||
<li>Выявление скрытых дефектов без разрушения конструкций</li>
|
||
<li>Определение мест утечек тепла</li>
|
||
<li>Обнаружение проблем в электропроводке</li>
|
||
<li>Контроль качества утепления</li>
|
||
</ul>
|
||
|
||
<p>Наши специалисты используют современное тепловизионное оборудование последнего поколения для максимально точной диагностики.</p>
|
||
`,
|
||
category: 'Тепловизионная экспертиза',
|
||
imageUrl: '/images/placeholders/services/thermal-inspection.jpg',
|
||
featured: false,
|
||
authorId: admin.id,
|
||
tags: 'тепловизор, диагностика, дефекты, контроль',
|
||
},
|
||
{
|
||
title: 'Обследование канализационных систем: важность регулярной проверки',
|
||
slug: 'sewerage-inspection-importance',
|
||
summary: 'Почему важно регулярно проводить обследование канализационных систем и как это влияет на безопасность здания.',
|
||
content: `
|
||
<p>Канализационная система – это одна из важнейших инженерных систем любого здания, требующая регулярного контроля и обслуживания.</p>
|
||
|
||
<h3>Основные проблемы канализации:</h3>
|
||
<ul>
|
||
<li>Засоры и отложения</li>
|
||
<li>Коррозия труб</li>
|
||
<li>Нарушение герметичности соединений</li>
|
||
<li>Деформация трубопроводов</li>
|
||
</ul>
|
||
|
||
<p>Своевременное обследование позволяет выявить проблемы на ранней стадии и избежать серьезных аварий.</p>
|
||
`,
|
||
category: 'Обследование канализации',
|
||
imageUrl: '/images/placeholders/services/sewerage-inspection.jpg',
|
||
featured: false,
|
||
authorId: editor.id,
|
||
tags: 'канализация, обследование, трубы, аварии',
|
||
},
|
||
{
|
||
title: 'ЦКЭ Проект расширяет географию услуг',
|
||
slug: 'cke-project-expansion',
|
||
summary: 'Компания ЦКЭ Проект объявляет о расширении географии предоставления услуг строительно-технической экспертизы.',
|
||
content: `
|
||
<p>Мы рады сообщить о значительном расширении географии наших услуг. Теперь высококачественная строительно-техническая экспертиза доступна в еще большем количестве регионов.</p>
|
||
|
||
<h3>Новые направления:</h3>
|
||
<ul>
|
||
<li>Московская область</li>
|
||
<li>Нижегородская область</li>
|
||
<li>Республика Татарстан</li>
|
||
<li>Самарская область</li>
|
||
</ul>
|
||
|
||
<p>Это стало возможным благодаря увеличению штата квалифицированных экспертов и приобретению дополнительного оборудования.</p>
|
||
`,
|
||
category: 'Общие новости',
|
||
imageUrl: '/images/office.jpg',
|
||
featured: false,
|
||
authorId: admin.id,
|
||
tags: 'расширение, услуги, регионы, экспертиза',
|
||
},
|
||
];
|
||
|
||
for (const news of newsData) {
|
||
await prisma.news.upsert({
|
||
where: { slug: news.slug },
|
||
update: {},
|
||
create: news,
|
||
});
|
||
}
|
||
|
||
console.log('✅ Database seeded successfully!');
|
||
console.log('👤 Admin user: admin@ckeproekt.ru / admin123');
|
||
console.log('👤 Editor user: editor@ckeproekt.ru / editor123');
|
||
}
|
||
|
||
main()
|
||
.catch((e) => {
|
||
console.error('❌ Error seeding database:', e);
|
||
process.exit(1);
|
||
})
|
||
.finally(async () => {
|
||
await prisma.$disconnect();
|
||
});
|