Database
This commit is contained in:
173
prisma/seed.mts
Normal file
173
prisma/seed.mts
Normal file
@@ -0,0 +1,173 @@
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
import { hash } from 'bcryptjs';
|
||||
|
||||
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' as const,
|
||||
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' as const,
|
||||
viewers: 892,
|
||||
order: 2,
|
||||
},
|
||||
{
|
||||
name: 'Gölbaşı İstasyonu İnşaatı',
|
||||
location: 'Gölbaşı',
|
||||
videoUrl: 'https://www.youtube.com/embed/dQw4w9WgXcQ',
|
||||
status: 'offline' as const,
|
||||
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();
|
||||
});
|
||||
Reference in New Issue
Block a user