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();
  });
