k1`NO_LppQDs}F0&g$PYoM*)qwl*AhbK)5$->8CiL(d0-*(Ttu)L0Kb_S``KiZ4
ztFZ}tuYkH1>b(-`X4!7)F2g&dZl;spVD)o!ucGxcVUXwnrk9rH6Y<4^ws?nXHuF`;
zt*`z~UZh!ny*=Fj>Z_p#=Y-Pc)lIhSKxn=Et)p6X<&5KL&u!F)II4qJtWbiF3|{Pz
z>yR+MNU-wZaR1<7=);(A;f`f4qsPO*MGRN`@9ouqRc0Lzvc?8qx8L>A!x%~gGd@KB
zSveA`RKQEn|L*p+h5OH*4So25z<$O|yE=BB27klVm>z$xp1-tDkrW0}|I_FZDZMccCTR-`5v<=ryfH
zwq^6*)@lXvq+{x@+_Bd-C)?FQ^VXnA@VOnDdVT$1PL^%ZV5${T`$+0K>t=(|6y`#;
zgVclyI#(Il5O6{F`_hw0^SE!Da$XS^^CA9%IY>LcYkj%g&>{RWEm^5-$>
ztZxX<9V9rG8w|Bxg7?{trnde|mqM#TMfN=nWE5*Q!vp}w3~K({T&1j<%nN)_Focp9
zcfJ-9&G^BnxaW$^EdJY6ReFFY9Z$(F?$CH70$vRp&JlEY_2!nA84T@8>Mza9&eIII
zIfBXI3mnGr`G0#@QBFMQx!v`H&fjbQ&+tEnEhNZ~L_i`S5s(N-1irusY@7)9#|A@%
zQ+!qB{xU`$%gk}GnqjZySf2k@roG~iA66D;Z>}WZgPlpdO9m>h2ucl*rN!!;feTpo
z$PZjx>k0Rd_Js;z@kBlZSqnxHyf9BVS@$sqF7=+llX36h9s?J5y1RvEX7@dB$XijT
zN=bXF$3m4^#~TyzTGk!#Y*Ni_G(CB7&T6@o5UgpGMwfCaL99Lb(^$EbfS%w`t6_2}
z;m|8&aw*{m%ZYL+p?XcccFFez&i^|xwhQ(COu>)*NCYGT5&?;TL_i`S5s(N-1SA3y
z0f~S_KqBzPLZH35ze8*>@aF$NS9*W`#j2pJjYL2qAQ6xVNCYGT5&?;TL_i`S5s(N-
z1SA5A5^nD6;PC~-{(t2|rRQI|mCj`Q--KUp`BBp!A>p(9Jm_dYsjL>x>_!TGgL7|m
z4Au{$nM8<5jl><>2G9%mVKN_)9>Gf#O<5
z9q}u`5b*OE5kbf_NH7HZ#}Ma<(U`Nza{Mo309}N~T>`obMBfl;InF^MY7_*a5GTUy
zkqvgAX|{+&fivHZX^%#uS7T$BC$EfpS;HcEI7l72yTP(JYG&h{5Y8K$#xupVRZks5
z0VG2UpiZ%If{B3vC6NQ;2ai8d8G`}=C@xQpU9OY#fP_yfYp{j)3Vr7y#fe}+41zxuB{`vvnHQ$8
zL17S2_k8eb%%N0XJWv>i4qTyw>iY$B9^9fTg#-}{GnjSPc
zv<%LejNm3JS9Yir05@{w$R?tDs-z&7
z!7qh$Q)dWcK-_KD(A@n!7gFR@PE$k#ZI6g26f0S|S8HAqL4V}aPYwA!l`#JjH&GCN
z2!V$XxH#xCc{hu$2uwmg6;Ga%79GakBC+xD@o25Rd8tS3lY}N=W}Xg*U?HAX$H$Ip
zZ@a(VdQzDyoGRFbSI!U5wZ9gP7C#dG%Z%t>Je#>;;@qN&P6b9*YmS^Xsj3B#Jld?P
zc_cpE8d(MG!h{0B@g@`f8<>#DAVN2p77u024GFImm>obbKEaE{YhQTL!TiYV@)C(m
zjEzOm1cabLqa@4d44JMH92x*|6U60loGE{297aKru`993@f!Vji3hubnn$a3y8-W_
zAqd>K8;DLtCu`mmJZbkUEhm*+;cVe{;g!>o*>-dTh*`yBQjz80mB?w)rd2HqTQ!lyUS9%;J!^`cM^4
zLvvy*0s5`Tc*FM6NHG_i#c-~0@5?frd+w_=7+6&|ognq7UE41++-jt&cbdd-Yv;Ng
zZq*xZJy)~AaHv|dLF&O?@lzipHBjt>*F$2Ev^yvVN!~E+MGle~`4f;bLg3$oL%?!8
z2PGwLJ_}E@FCYrSv*@{|J&Ng)Wv9DO`A%)(duN?y0SH)%Z85>vrQ_mnt7B;R2PO^XYNX+Ozk$ns_fi-4kG1Y_f9%BsS5(QLT5|Jp7Bs(l
zwpz*#T=U!~*}&B~I2kK3Wpjm<%5u!ilH2kbcYs@!yL|<^!naoTp$9HrIBM|2*|fP=
zztjheAUHdgF(`K&)wp2c@AQm_FFZV7OOeSVjsKV7$RdH$t^^mnnLdQ&6_z6}uakYg?J`S@#^7Rf{!wzS_o@V$cm+q9+qe7Q(GrvfW?CCz?382IKd=
zwaX+}hY40yN{cDwb`QTGT&&OSNh2@PSL!);8+%L}G}H$tJA}t{ckWB!F)jOg(Yc6M
zF}h)gFZIEhK2&Pw=z+O^p1)F{`AsTbrcd|0B_rl=7ipd^((&%Nx);D2N)CQv-ggNn
P?&06FpS`cPfl2&76u>Gh
literal 0
HcmV?d00001
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
new file mode 100644
index 0000000..098d7ea
--- /dev/null
+++ b/prisma/schema.prisma
@@ -0,0 +1,138 @@
+// This is your Prisma schema file,
+// learn more about it in the docs: https://pris.ly/d/prisma-schema
+
+generator client {
+ provider = "prisma-client-js"
+}
+
+datasource db {
+ provider = "sqlite"
+ url = env("DATABASE_URL")
+}
+
+model User {
+ id Int @id @default(autoincrement())
+ username String @unique
+ password String
+ role String @default("admin")
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+}
+
+model SliderItem {
+ id Int @id @default(autoincrement())
+ title String
+ description String
+ buttonText String
+ buttonLink String
+ active Boolean @default(true)
+ order Int @default(0)
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+}
+
+model News {
+ id Int @id @default(autoincrement())
+ title String
+ summary String
+ content String
+ image String
+ category String
+ author String
+ tags String
+ featured Boolean @default(false)
+ date String
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+}
+
+model Media {
+ id Int @id @default(autoincrement())
+ type String
+ title String
+ description String
+ thumbnail String
+ videoUrl String?
+ duration String?
+ category String?
+ featured Boolean @default(false)
+ date String
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+}
+
+model Document {
+ id Int @id @default(autoincrement())
+ title String
+ description String
+ type String
+ category String
+ size String
+ downloadUrl String
+ date String
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+}
+
+model MetroStation {
+ id Int @id @default(autoincrement())
+ name String
+ status String
+ progress Int @default(0)
+ description String?
+ order Int @default(0)
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+}
+
+model LiveStream {
+ id Int @id @default(autoincrement())
+ url String
+ title String?
+ active Boolean @default(false)
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+}
+
+model Message {
+ id Int @id @default(autoincrement())
+ name String
+ email String
+ phone String
+ subject String
+ type String
+ message String
+ read Boolean @default(false)
+ date String
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+}
+
+model FAQ {
+ id Int @id @default(autoincrement())
+ question String
+ answer String
+ order Int @default(0)
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+}
+
+model Camera {
+ id Int @id @default(autoincrement())
+ name String
+ location String
+ videoUrl String
+ status String @default("online")
+ viewers Int @default(0)
+ order Int @default(0)
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+}
+
+model SiteSettings {
+ id Int @id @default(autoincrement())
+ key String @unique
+ value String
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+}
diff --git a/prisma/seed.js b/prisma/seed.js
new file mode 100644
index 0000000..db71402
--- /dev/null
+++ b/prisma/seed.js
@@ -0,0 +1,173 @@
+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();
+ });
diff --git a/prisma/seed.mts b/prisma/seed.mts
new file mode 100644
index 0000000..8361dff
--- /dev/null
+++ b/prisma/seed.mts
@@ -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();
+ });
diff --git a/prisma/seed.ts b/prisma/seed.ts
new file mode 100644
index 0000000..502c499
--- /dev/null
+++ b/prisma/seed.ts
@@ -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();
+ });