const { PrismaClient } = require('@prisma/client'); const { hash } = require('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', 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(); });