This commit is contained in:
Şahan Hasret
2025-11-21 17:46:30 +03:00
parent c0b7fb463e
commit 76c31274d5
46 changed files with 3675 additions and 1043 deletions

173
prisma/seed.ts Normal file
View File

@@ -0,0 +1,173 @@
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();
});