174 lines
5.0 KiB
TypeScript
174 lines
5.0 KiB
TypeScript
import { hash } from 'bcryptjs';
|
||
import { PrismaClient } from '@prisma/client';
|
||
|
||
const prisma = new PrismaClient();
|
||
|
||
async function main() {
|
||
console.log('Seeding database...');
|
||
|
||
// Admin kullanıcı oluştur
|
||
const adminPassword = await hash(
|
||
process.env.ADMIN_DEFAULT_PASSWORD || 'admin123',
|
||
10
|
||
);
|
||
|
||
const admin = await prisma.user.upsert({
|
||
where: { username: 'admin' },
|
||
update: {},
|
||
create: {
|
||
username: 'admin',
|
||
password: adminPassword,
|
||
},
|
||
});
|
||
|
||
console.log('✓ Admin kullanıcı oluşturuldu:', admin.username);
|
||
|
||
// Slider items
|
||
const sliderItems = [
|
||
{
|
||
title: 'Ankara Metro Altyapı Projelerinde Öncü Çözümler',
|
||
description:
|
||
'Ankara Büyükşehir Belediyesi ile birlikte, modern teknoloji ve mühendislik uzmanlığımızla başkentin ulaşım ağını inşa ediyor, geleceğin metro sistemlerini bugünden hayata geçiriyoruz.',
|
||
buttonText: 'Detayları Gör',
|
||
buttonLink: '#proje-detay',
|
||
active: true,
|
||
},
|
||
{
|
||
title: 'A2 Metro Hattı İnşaatında Son Aşamaya Gelindi',
|
||
description:
|
||
'15 istasyonlu A2 Metro Hattı projemiz %75 tamamlandı. 2026 yılında hizmete açılacak modern metro hattımız, günlük 300 bin yolcuya hizmet verecek.',
|
||
buttonText: 'İlerlemeyi İzle',
|
||
buttonLink: '#metro-hatti',
|
||
active: true,
|
||
},
|
||
{
|
||
title: 'Çevre Dostu Metro Teknolojileri',
|
||
description:
|
||
'Yenilenebilir enerji kaynakları ve sürdürülebilir inşaat teknikleri ile çevre dostu metro projelerine imza atıyoruz. Karbon emisyonunu %40 azaltan yenilikçi çözümlerimiz.',
|
||
buttonText: 'Yeşil Projeler',
|
||
buttonLink: '#cevre',
|
||
active: true,
|
||
},
|
||
];
|
||
|
||
for (const item of sliderItems) {
|
||
await prisma.sliderItem.create({ data: item });
|
||
}
|
||
|
||
console.log('✓ Slider items oluşturuldu:', sliderItems.length);
|
||
|
||
// FAQs
|
||
const faqs = [
|
||
{
|
||
question: 'Metro inşaat çalışmaları ne zaman başladı?',
|
||
answer:
|
||
'A2 Metro Hattı inşaat çalışmalarımız 2021 yılında başlamış olup, proje 2026 yılında tamamlanacaktır.',
|
||
order: 1,
|
||
},
|
||
{
|
||
question: 'Hangi metro hatlarında çalışıyorsunuz?',
|
||
answer:
|
||
'Şu anda A2 Metro Hattı, Keçiören-Gölbaşı Metro Hattı ve Batıkent-Sincan Metro Hattı projelerinde aktif olarak çalışmaktayız.',
|
||
order: 2,
|
||
},
|
||
{
|
||
question: 'Çevreye olan etkiniz nedir?',
|
||
answer:
|
||
'Tüm projelerimizde çevre dostu teknolojiler kullanıyor, karbon emisyonunu en aza indirmeye özen gösteriyoruz. Ayrıca geri dönüşüm programlarımızla inşaat atıklarını azaltıyoruz.',
|
||
order: 3,
|
||
},
|
||
];
|
||
|
||
for (const faq of faqs) {
|
||
await prisma.fAQ.create({ data: faq });
|
||
}
|
||
|
||
console.log('✓ FAQs oluşturuldu:', faqs.length);
|
||
|
||
// Cameras
|
||
const cameras = [
|
||
{
|
||
name: 'A2 Metro - Ana Şantiye',
|
||
location: 'Kızılay İstasyonu',
|
||
videoUrl: 'https://www.youtube.com/embed/dQw4w9WgXcQ',
|
||
status: 'online',
|
||
viewers: 1245,
|
||
order: 1,
|
||
},
|
||
{
|
||
name: 'Keçiören Hattı - Tünel Kazı',
|
||
location: 'Keçiören İstasyonu',
|
||
videoUrl: 'https://www.youtube.com/embed/dQw4w9WgXcQ',
|
||
status: 'online',
|
||
viewers: 892,
|
||
order: 2,
|
||
},
|
||
{
|
||
name: 'Gölbaşı İstasyonu İnşaatı',
|
||
location: 'Gölbaşı',
|
||
videoUrl: 'https://www.youtube.com/embed/dQw4w9WgXcQ',
|
||
status: 'offline',
|
||
viewers: 0,
|
||
order: 3,
|
||
},
|
||
];
|
||
|
||
for (const camera of cameras) {
|
||
await prisma.camera.create({ data: camera });
|
||
}
|
||
|
||
console.log('✓ Cameras oluşturuldu:', cameras.length);
|
||
|
||
// Site Settings
|
||
await prisma.siteSettings.create({
|
||
data: {
|
||
key: 'main',
|
||
value: JSON.stringify({
|
||
contact: {
|
||
phone: '+90 (312) 555 00 00',
|
||
email: 'info@gulermakmetro.com.tr',
|
||
address:
|
||
'Ankara Büyükşehir Belediyesi İş Merkezi, Çankaya/Ankara',
|
||
kep: 'gulermak@hs01.kep.tr',
|
||
},
|
||
social: {
|
||
facebook: 'https://facebook.com/gulermakmetro',
|
||
twitter: 'https://twitter.com/gulermakmetro',
|
||
instagram: 'https://instagram.com/gulermakmetro',
|
||
youtube: 'https://youtube.com/@gulermakmetro',
|
||
linkedin: 'https://linkedin.com/company/gulermakmetro',
|
||
},
|
||
companyInfo: {
|
||
name: 'Gülermak Metro',
|
||
fullName: 'Gülermak Ankara Metro Yapım A.Ş.',
|
||
foundedYear: '2020',
|
||
},
|
||
}),
|
||
},
|
||
});
|
||
|
||
console.log('✓ Site settings oluşturuldu');
|
||
|
||
// Live Stream
|
||
await prisma.liveStream.create({
|
||
data: {
|
||
url: 'https://www.youtube.com/embed/jfKfPfyJRdk',
|
||
active: true,
|
||
title: 'A2 Metro Hattı Canlı Yayını',
|
||
},
|
||
});
|
||
|
||
console.log('✓ Live stream oluşturuldu');
|
||
|
||
console.log('✅ Seeding tamamlandı!');
|
||
}
|
||
|
||
main()
|
||
.catch((e) => {
|
||
console.error('Seeding hatası:', e);
|
||
process.exit(1);
|
||
})
|
||
.finally(async () => {
|
||
await prisma.$disconnect();
|
||
});
|