From 6c36a15290658aa20ff15dd5f3623b7f8f82c692 Mon Sep 17 00:00:00 2001 From: nico Date: Mon, 2 Feb 2026 17:31:27 +0800 Subject: [PATCH] Seed Menu Ekonomi Seed MEnu Inovasi Sisa 2 Menu --- .../ekonomi/seed_demografi_pekerjaan.ts | 25 + .../ekonomi/seed_jumlah_penduduk_miskin.ts | 23 + .../ekonomi/seed_jumlah_pengangguran.ts | 27 + .../ekonomi/seed_lowongan_kerja_lokal.ts | 35 ++ .../_seeder_list/ekonomi/seed_pasar_desa.ts | 91 +++ .../ekonomi/seed_pendapatan_asli.ts | 81 +++ ...eed_penduduk_usia_kerja_yang_menganggur.ts | 50 ++ .../ekonomi/seed_program_kemiskinan.ts | 50 ++ .../ekonomi/seed_sektor_unggulan_desa.ts | 25 + .../ekonomi/seed_struktur_bumdes.ts | 58 ++ prisma/_seeder_list/inovasi/seed_ajukan.ts | 31 + .../_seeder_list/inovasi/seed_desa_digital.ts | 25 + .../inovasi/seed_info_teknologi.ts | 42 ++ .../inovasi/seed_kolaborasi_inovasi.ts | 66 ++ .../inovasi/seed_layanan_online_desa.ts | 96 +++ .../inovasi/seed_program_kreatif_desa.ts | 27 + .../data/ekonomi/pasar-desa/pasar-desa.json | 8 +- .../info-teknologi/info-teknologi.json | 8 +- .../kolaborasi-inovasi/mitra-kolaborasi.json | 6 +- prisma/schema.prisma | 4 +- prisma/seed.ts | 573 +----------------- .../info-teknologi-tepat-guna/page.tsx | 2 +- .../inovasi/kolaborasi-inovasi/page.tsx | 2 +- 23 files changed, 799 insertions(+), 556 deletions(-) create mode 100644 prisma/_seeder_list/ekonomi/seed_demografi_pekerjaan.ts create mode 100644 prisma/_seeder_list/ekonomi/seed_jumlah_penduduk_miskin.ts create mode 100644 prisma/_seeder_list/ekonomi/seed_jumlah_pengangguran.ts create mode 100644 prisma/_seeder_list/ekonomi/seed_lowongan_kerja_lokal.ts create mode 100644 prisma/_seeder_list/ekonomi/seed_pasar_desa.ts create mode 100644 prisma/_seeder_list/ekonomi/seed_pendapatan_asli.ts create mode 100644 prisma/_seeder_list/ekonomi/seed_penduduk_usia_kerja_yang_menganggur.ts create mode 100644 prisma/_seeder_list/ekonomi/seed_program_kemiskinan.ts create mode 100644 prisma/_seeder_list/ekonomi/seed_sektor_unggulan_desa.ts create mode 100644 prisma/_seeder_list/ekonomi/seed_struktur_bumdes.ts create mode 100644 prisma/_seeder_list/inovasi/seed_ajukan.ts create mode 100644 prisma/_seeder_list/inovasi/seed_desa_digital.ts create mode 100644 prisma/_seeder_list/inovasi/seed_info_teknologi.ts create mode 100644 prisma/_seeder_list/inovasi/seed_kolaborasi_inovasi.ts create mode 100644 prisma/_seeder_list/inovasi/seed_layanan_online_desa.ts create mode 100644 prisma/_seeder_list/inovasi/seed_program_kreatif_desa.ts diff --git a/prisma/_seeder_list/ekonomi/seed_demografi_pekerjaan.ts b/prisma/_seeder_list/ekonomi/seed_demografi_pekerjaan.ts new file mode 100644 index 00000000..41d4dc07 --- /dev/null +++ b/prisma/_seeder_list/ekonomi/seed_demografi_pekerjaan.ts @@ -0,0 +1,25 @@ +import prisma from "@/lib/prisma"; +import demografiPekerjaan from "../../data/ekonomi/demografi-pekerjaan/demografi-pekerjaan.json"; + +export async function seedDemografiPekerjaan() { + console.log("🔄 Seeding Demografi Pekerjaan..."); + for (const k of demografiPekerjaan) { + await prisma.dataDemografiPekerjaan.upsert({ + where: { + id: k.id, + }, + update: { + pekerjaan: k.pekerjaan, + lakiLaki: k.lakiLaki, + perempuan: k.perempuan, + }, + create: { + id: k.id, + pekerjaan: k.pekerjaan, + lakiLaki: k.lakiLaki, + perempuan: k.perempuan, + }, + }); + } + console.log("✅ Demografi Pekerjaan seeded successfully"); +} diff --git a/prisma/_seeder_list/ekonomi/seed_jumlah_penduduk_miskin.ts b/prisma/_seeder_list/ekonomi/seed_jumlah_penduduk_miskin.ts new file mode 100644 index 00000000..48374742 --- /dev/null +++ b/prisma/_seeder_list/ekonomi/seed_jumlah_penduduk_miskin.ts @@ -0,0 +1,23 @@ +import prisma from "@/lib/prisma"; +import jumlahPendudukMiskin from "../../data/ekonomi/jumlah-penduduk-miskin/jumlah-penduduk-miskin.json"; + +export async function seedJumlahPendudukMiskin() { + console.log("🔄 Seeding Jumlah Penduduk Miskin..."); + for (const k of jumlahPendudukMiskin) { + await prisma.grafikJumlahPendudukMiskin.upsert({ + where: { + id: k.id, + }, + update: { + year: k.year, + totalPoorPopulation: k.totalPoorPopulation, + }, + create: { + id: k.id, + year: k.year, + totalPoorPopulation: k.totalPoorPopulation, + }, + }); + } + console.log("✅ Jumlah Penduduk Miskin seeded successfully"); +} diff --git a/prisma/_seeder_list/ekonomi/seed_jumlah_pengangguran.ts b/prisma/_seeder_list/ekonomi/seed_jumlah_pengangguran.ts new file mode 100644 index 00000000..b1f2cb03 --- /dev/null +++ b/prisma/_seeder_list/ekonomi/seed_jumlah_pengangguran.ts @@ -0,0 +1,27 @@ +import prisma from "@/lib/prisma"; +import jumlahPengangguran from "../../data/ekonomi/jumlah-pengangguran/detail-data-pengangguran.json"; + +export async function seedJumlahPengangguran() { + for (const d of jumlahPengangguran) { + await prisma.detailDataPengangguran.upsert({ + where: { + month_year: { month: d.month, year: d.year }, + }, + update: { + totalUnemployment: d.totalUnemployment, + educatedUnemployment: d.educatedUnemployment, + uneducatedUnemployment: d.uneducatedUnemployment, + percentageChange: d.percentageChange, + }, + create: { + month: d.month, + year: d.year, + totalUnemployment: d.totalUnemployment, + educatedUnemployment: d.educatedUnemployment, + uneducatedUnemployment: d.uneducatedUnemployment, + percentageChange: d.percentageChange, + }, + }); + } + console.log("📊 detailDataPengangguran success ..."); +} diff --git a/prisma/_seeder_list/ekonomi/seed_lowongan_kerja_lokal.ts b/prisma/_seeder_list/ekonomi/seed_lowongan_kerja_lokal.ts new file mode 100644 index 00000000..95494b24 --- /dev/null +++ b/prisma/_seeder_list/ekonomi/seed_lowongan_kerja_lokal.ts @@ -0,0 +1,35 @@ +import prisma from "@/lib/prisma"; +import lowonganKerjaLokal from "../../data/ekonomi/lowongan-kerja-lokal/lowongan-kerja-lokal.json"; + +export async function seedLowonganKerjaLokal() { + console.log("🔄 Seeding Lowongan Kerja Lokal..."); + for (const k of lowonganKerjaLokal) { + await prisma.lowonganPekerjaan.upsert({ + where: { + id: k.id, + }, + update: { + posisi: k.posisi, + namaPerusahaan: k.namaPerusahaan, + lokasi: k.lokasi, + tipePekerjaan: k.tipePekerjaan, + gaji: k.gaji, + deskripsi: k.deskripsi, + kualifikasi: k.kualifikasi, + notelp: k.notelp, + }, + create: { + id: k.id, + posisi: k.posisi, + namaPerusahaan: k.namaPerusahaan, + lokasi: k.lokasi, + tipePekerjaan: k.tipePekerjaan, + gaji: k.gaji, + deskripsi: k.deskripsi, + kualifikasi: k.kualifikasi, + notelp: k.notelp, + }, + }); + } + console.log("✅ Lowongan Kerja Lokal seeded successfully"); +} diff --git a/prisma/_seeder_list/ekonomi/seed_pasar_desa.ts b/prisma/_seeder_list/ekonomi/seed_pasar_desa.ts new file mode 100644 index 00000000..f8ad4105 --- /dev/null +++ b/prisma/_seeder_list/ekonomi/seed_pasar_desa.ts @@ -0,0 +1,91 @@ +import prisma from "@/lib/prisma"; +import kategoriProduk from "../../data/ekonomi/pasar-desa/kategori-produk.json"; +import pasarDesa from "../../data/ekonomi/pasar-desa/pasar-desa.json"; +import kategoriToPasar from "../../data/ekonomi/pasar-desa/kategori-to-pasar.json"; + +export async function seedPasarDesa() { + console.log("🔄 Seeding Kategori Produk..."); + for (const k of kategoriProduk) { + await prisma.kategoriProduk.upsert({ + where: { + id: k.id, + }, + update: { + nama: k.nama, + }, + create: { + id: k.id, + nama: k.nama, + }, + }); + } + console.log("✅ Kategori Produk seeded successfully"); + + console.log("🔄 Seeding Pasar Desa..."); + + for (const p of pasarDesa) { + let imageId: string | null = null; + + if (p.imageName) { + const image = await prisma.fileStorage.findUnique({ + where: { name: p.imageName }, + select: { id: true }, + }); + + if (!image) { + console.warn( + `⚠️ Image not found for pasar desa "${p.nama}": ${p.imageName}`, + ); + } else { + imageId = image.id; + } + } + + await prisma.pasarDesa.upsert({ + where: { id: p.id }, + update: { + nama: p.nama, + deskripsi: p.deskripsi, + harga: p.harga, + rating: p.rating, + alamatUsaha: p.alamatUsaha, + kontak: p.kontak, + imageId, + kategoriProdukId: p.kategoriProdukId, + }, + create: { + id: p.id, + nama: p.nama, + deskripsi: p.deskripsi, + harga: p.harga, + rating: p.rating, + alamatUsaha: p.alamatUsaha, + kontak: p.kontak, + imageId, + kategoriProdukId: p.kategoriProdukId, + }, + }); + + console.log(`✅ Pasar desa seeded: ${p.nama}`); + } + + console.log("🎉 Pasar desa seed selesai"); + + console.log("🔄 Seeding Kategori To Pasar..."); + for (const p of kategoriToPasar) { + await prisma.kategoriToPasar.upsert({ + where: { + id: p.id, + }, + update: { + kategoriId: p.kategoriId, + pasarDesaId: p.pasarDesaId, + }, + create: { + id: p.id, + kategoriId: p.kategoriId, + pasarDesaId: p.pasarDesaId, + }, + }); + } +} diff --git a/prisma/_seeder_list/ekonomi/seed_pendapatan_asli.ts b/prisma/_seeder_list/ekonomi/seed_pendapatan_asli.ts new file mode 100644 index 00000000..93a30a5e --- /dev/null +++ b/prisma/_seeder_list/ekonomi/seed_pendapatan_asli.ts @@ -0,0 +1,81 @@ +import prisma from "@/lib/prisma"; +import apbdes from "../../data/ekonomi/pendapatan-asli-desa/apbDesa.json"; +import pendapatan from "../../data/ekonomi/pendapatan-asli-desa/pendapatanDesa.json"; +import belanja from "../../data/ekonomi/pendapatan-asli-desa/belanjaDesa.json"; +import pembiayaan from "../../data/ekonomi/pendapatan-asli-desa/pembiayaanDesa.json"; + +export async function seedPendapatanAsli() { + console.log("🔄 Seeding Pendapatan Asli..."); + for (const d of apbdes) { + await prisma.apbDesa.upsert({ + where: { + id: d.id, + }, + update: { + tahun: d.tahun, + }, + create: { + id: d.id, + tahun: d.tahun, + }, + }); + } + console.log("✅ Pendapatan Asli seeded successfully"); + + console.log("🔄 Seeding Pendapatan..."); + for (const d of pendapatan) { + await prisma.pendapatan.upsert({ + where: { + id: d.id, + }, + update: { + name: d.name, + value: d.nilai + }, + create: { + id: d.id, + name: d.name, + value: d.nilai + }, + }); + } + console.log("✅ Pendapatan seeded successfully"); + + console.log("🔄 Seeding Belanja..."); + for (const d of belanja) { + await prisma.belanja.upsert({ + where: { + id: d.id, + }, + update: { + name: d.name, + value: d.nilai + }, + create: { + id: d.id, + name: d.name, + value: d.nilai + }, + }); + } + console.log("✅ Belanja seeded successfully"); + + console.log("🔄 Seeding Pembiayaan..."); + for (const d of pembiayaan) { + await prisma.pembiayaan.upsert({ + where: { + id: d.id, + }, + update: { + name: d.name, + value: d.nilai + }, + create: { + id: d.id, + name: d.name, + value: d.nilai + }, + }); + } + console.log("✅ Pembiayaan seeded successfully"); +} diff --git a/prisma/_seeder_list/ekonomi/seed_penduduk_usia_kerja_yang_menganggur.ts b/prisma/_seeder_list/ekonomi/seed_penduduk_usia_kerja_yang_menganggur.ts new file mode 100644 index 00000000..ac64954f --- /dev/null +++ b/prisma/_seeder_list/ekonomi/seed_penduduk_usia_kerja_yang_menganggur.ts @@ -0,0 +1,50 @@ +import prisma from "@/lib/prisma"; +import grafikMenganggurBerdasarkanUsia from "../../data/ekonomi/jumlah-penduduk-usia-kerja-yang-menganggur/pengangguran-berdasarkan-usia.json"; +import grafikMenganggurBerdasarkanPendidikan from "../../data/ekonomi/jumlah-penduduk-usia-kerja-yang-menganggur/pengangguran-berdasarkan-pendidikan.json"; + +export async function seedPendudukUsiaKerjaYangMenganggur() { + for (const p of grafikMenganggurBerdasarkanUsia) { + await prisma.grafikMenganggurBerdasarkanUsia.upsert({ + where: { + id: p.id, + }, + update: { + usia18_25: p.usia18_25, + usia26_35: p.usia26_35, + usia36_45: p.usia36_45, + usia46_keatas: p.usia46_keatas, + }, + create: { + id: p.id, + usia18_25: p.usia18_25, + usia26_35: p.usia26_35, + usia36_45: p.usia36_45, + usia46_keatas: p.usia46_keatas, + }, + }); + } + console.log("📊 grafikMenganggurBerdasarkanUsia success ..."); + for (const p of grafikMenganggurBerdasarkanPendidikan) { + await prisma.grafikMenganggurBerdasarkanPendidikan.upsert({ + where: { + id: p.id, + }, + update: { + SD: p.SD, + SMP: p.SMP, + SMA: p.SMA, + D3: p.D3, + S1: p.S1, + }, + create: { + id: p.id, + SD: p.SD, + SMP: p.SMP, + SMA: p.SMA, + D3: p.D3, + S1: p.S1, + }, + }); + } + console.log("📊 grafikMenganggurBerdasarkanUsia success ..."); +} diff --git a/prisma/_seeder_list/ekonomi/seed_program_kemiskinan.ts b/prisma/_seeder_list/ekonomi/seed_program_kemiskinan.ts new file mode 100644 index 00000000..748b1f8b --- /dev/null +++ b/prisma/_seeder_list/ekonomi/seed_program_kemiskinan.ts @@ -0,0 +1,50 @@ +import prisma from "@/lib/prisma"; +import programKemiskinan from "../../data/ekonomi/program-kemiskinan/program-kemiskinan.json"; +import statistikKemiskinan from "../../data/ekonomi/program-kemiskinan/statistik-kemiskinan.json"; + +export async function seedProgramKemiskinan() { + for (const s of statistikKemiskinan) { + await prisma.statistikKemiskinan.upsert({ + where: { tahun: s.tahun }, // ✅ FIX + update: { + jumlah: s.jumlah, + }, + create: { + id: s.id, // id boleh tetap + tahun: s.tahun, + jumlah: s.jumlah, + }, + }); + } + + console.log("📊 Statistik Kemiskinan seeded successfully"); + + console.log("🔄 Seeding Program Kemiskinan..."); + for (const k of programKemiskinan) { + await prisma.programKemiskinan.upsert({ + where: { id: k.id }, + update: { + nama: k.nama, + deskripsi: k.deskripsi, + icon: k.icon, + statistik: { + connect: { + tahun: k.tahun, // 👈 BUKAN ID + }, + }, + }, + create: { + id: k.id, + nama: k.nama, + deskripsi: k.deskripsi, + icon: k.icon, + statistik: { + connect: { + tahun: k.tahun, + }, + }, + }, + }); + } + console.log("✅ Program Kemiskinan seeded successfully"); +} \ No newline at end of file diff --git a/prisma/_seeder_list/ekonomi/seed_sektor_unggulan_desa.ts b/prisma/_seeder_list/ekonomi/seed_sektor_unggulan_desa.ts new file mode 100644 index 00000000..0bfd469e --- /dev/null +++ b/prisma/_seeder_list/ekonomi/seed_sektor_unggulan_desa.ts @@ -0,0 +1,25 @@ +import prisma from "@/lib/prisma"; +import sektorUnggulanDesa from "../../data/ekonomi/sektor-unggulan/sektor-unggulan.json"; + +export async function seedSektorUnggulanDesa() { + console.log("🔄 Seeding Sektor Unggulan Desa..."); + for (const k of sektorUnggulanDesa) { + await prisma.sektorUnggulanDesa.upsert({ + where: { + id: k.id, + }, + update: { + name: k.name, + description: k.description, + value: k.value, + }, + create: { + id: k.id, + name: k.name, + description: k.description, + value: k.value, + }, + }); + } + console.log("✅ Sektor Unggulan Desa seeded successfully"); +} \ No newline at end of file diff --git a/prisma/_seeder_list/ekonomi/seed_struktur_bumdes.ts b/prisma/_seeder_list/ekonomi/seed_struktur_bumdes.ts new file mode 100644 index 00000000..47f92ed7 --- /dev/null +++ b/prisma/_seeder_list/ekonomi/seed_struktur_bumdes.ts @@ -0,0 +1,58 @@ +import prisma from "@/lib/prisma"; +import posisiOrganisasiBumDes from "../../data/ekonomi/struktur-organisasi/posisi-organisasi-bumdes.json"; +import pegawai from "../../data/ekonomi/struktur-organisasi/pegawai-bumdes.json"; + +export async function seedStrukturBumdes() { + const flattenedPosisi = posisiOrganisasiBumDes.flat(); + + // ✅ Urutkan berdasarkan hierarki + const sortedPosisi = flattenedPosisi.sort((a, b) => a.hierarki - b.hierarki); + + for (const p of sortedPosisi) { + console.log(`Seeding: ${p.nama} (id: ${p.id}, parent: ${p.parentId})`); + if (p.parentId) { + const parentExists = flattenedPosisi.some((pos) => pos.id === p.parentId); + if (!parentExists) { + console.warn( + `⚠️ Parent tidak ditemukan: ${p.parentId} untuk ${p.nama}`, + ); + continue; + } + } + await prisma.posisiOrganisasiBumDes.upsert({ + where: { id: p.id }, + update: p, + create: p, + }); + } + console.log("posisi organisasi berhasil"); + for (const p of pegawai) { + await prisma.pegawaiBumDes.upsert({ + where: { + id: p.id, + }, + update: { + namaLengkap: p.namaLengkap, + gelarAkademik: p.gelarAkademik, + tanggalMasuk: new Date(p.tanggalMasuk), + email: p.email, + telepon: p.telepon, + alamat: p.alamat, + posisiId: p.posisiId, + isActive: p.isActive, + }, + create: { + id: p.id, + namaLengkap: p.namaLengkap, + gelarAkademik: p.gelarAkademik, + tanggalMasuk: new Date(p.tanggalMasuk), + email: p.email, + telepon: p.telepon, + alamat: p.alamat, + posisiId: p.posisiId, + isActive: p.isActive, + }, + }); + } + console.log("pegawai success ..."); +} diff --git a/prisma/_seeder_list/inovasi/seed_ajukan.ts b/prisma/_seeder_list/inovasi/seed_ajukan.ts new file mode 100644 index 00000000..ee690fc0 --- /dev/null +++ b/prisma/_seeder_list/inovasi/seed_ajukan.ts @@ -0,0 +1,31 @@ +import prisma from "@/lib/prisma"; +import ajukanIde from "../../data/inovasi/ajukan-ide/ajukan-ide.json"; + +export async function seedAjukan() { + console.log("🔄 Seeding Ajukan Ide Inovatif..."); + for (const d of ajukanIde) { + await prisma.ajukanIdeInovatif.upsert({ + where: { + id: d.id, + }, + update: { + name: d.name, + alamat: d.alamat, + namaIde: d.namaIde, + deskripsi: d.deskripsi, + masalah: d.masalah, + benefit: d.benefit, + }, + create: { + id: d.id, + name: d.name, + alamat: d.alamat, + namaIde: d.namaIde, + deskripsi: d.deskripsi, + masalah: d.masalah, + benefit: d.benefit, + }, + }); + } + console.log("✅ Ajukan Ide Inovatif seeded successfully"); +} diff --git a/prisma/_seeder_list/inovasi/seed_desa_digital.ts b/prisma/_seeder_list/inovasi/seed_desa_digital.ts new file mode 100644 index 00000000..e56c8f22 --- /dev/null +++ b/prisma/_seeder_list/inovasi/seed_desa_digital.ts @@ -0,0 +1,25 @@ +import prisma from "@/lib/prisma"; +import desaDigital from "../../data/inovasi/desa-digital/desa-digital.json"; + +export async function seedDesaDigital() { + console.log("🔄 Seeding Desa Digital..."); + for (const d of desaDigital) { + await prisma.desaDigital.upsert({ + where: { + id: d.id, + }, + update: { + name: d.name, + deskripsi: d.deskripsi, + imageId: d.imageId, + }, + create: { + id: d.id, + name: d.name, + deskripsi: d.deskripsi, + imageId: d.imageId, + }, + }); + } + console.log("✅ Desa Digital seeded successfully"); +} diff --git a/prisma/_seeder_list/inovasi/seed_info_teknologi.ts b/prisma/_seeder_list/inovasi/seed_info_teknologi.ts new file mode 100644 index 00000000..768cde5b --- /dev/null +++ b/prisma/_seeder_list/inovasi/seed_info_teknologi.ts @@ -0,0 +1,42 @@ +import prisma from "@/lib/prisma"; +import infoTeknologi from "../../data/inovasi/info-teknologi/info-teknologi.json"; + +export async function seedInfoTeknologi() { + console.log("🔄 Seeding Info Teknologi..."); + for (const p of infoTeknologi) { + let imageId: string | null = null; + + if (p.imageName) { + const image = await prisma.fileStorage.findUnique({ + where: { name: p.imageName }, + select: { id: true }, + }); + + if (!image) { + console.warn( + `⚠️ Image not found for berita "${p.name}": ${p.imageName}`, + ); + } else { + imageId = image.id; + } + } + + await prisma.infoTekno.upsert({ + where: { + id: p.id, + }, + update: { + name: p.name, + deskripsi: p.deskripsi, + imageId: imageId, + }, + create: { + id: p.id, + name: p.name, + deskripsi: p.deskripsi, + imageId: imageId, + }, + }); + } + console.log("✅ Info Teknologi seeded successfully"); +} diff --git a/prisma/_seeder_list/inovasi/seed_kolaborasi_inovasi.ts b/prisma/_seeder_list/inovasi/seed_kolaborasi_inovasi.ts new file mode 100644 index 00000000..7a725478 --- /dev/null +++ b/prisma/_seeder_list/inovasi/seed_kolaborasi_inovasi.ts @@ -0,0 +1,66 @@ +import prisma from "@/lib/prisma"; +import kolaborasiInovasi from "../../data/inovasi/kolaborasi-inovasi/kolaborasi-inovasi.json"; +import mitraKolaborasi from "../../data/inovasi/kolaborasi-inovasi/mitra-kolaborasi.json"; + +export async function seedKolaborasiInovasi() { + console.log("🔄 Seeding Kolaborasi Inovasi..."); + for (const p of kolaborasiInovasi) { + await prisma.kolaborasiInovasi.upsert({ + where: { + id: p.id, + }, + update: { + name: p.name, + tahun: p.tahun, + slug: p.slug, + deskripsi: p.deskripsi, + kolaborator: p.kolaborator, + }, + create: { + id: p.id, + name: p.name, + tahun: p.tahun, + slug: p.slug, + deskripsi: p.deskripsi, + kolaborator: p.kolaborator, + }, + }); + } + console.log("✅ Kolaborasi Inovasi seeded successfully"); + + console.log("🔄 Seeding Mitra Kolaborasi..."); + for (const p of mitraKolaborasi) { + let imageId: string | null = null; + + if (p.imageName) { + const image = await prisma.fileStorage.findUnique({ + where: { name: p.imageName }, + select: { id: true }, + }); + + if (!image) { + console.warn( + `⚠️ Image not found for mitra kolaborasi "${p.name}": ${p.imageName}`, + ); + } else { + imageId = image.id; + } + } + + await prisma.mitraKolaborasi.upsert({ + where: { + id: p.id, + }, + update: { + name: p.name, + imageId: imageId, + }, + create: { + id: p.id, + name: p.name, + imageId: imageId, + }, + }); + } + console.log("✅ Mitra Kolaborasi seeded successfully"); +} \ No newline at end of file diff --git a/prisma/_seeder_list/inovasi/seed_layanan_online_desa.ts b/prisma/_seeder_list/inovasi/seed_layanan_online_desa.ts new file mode 100644 index 00000000..1e7c090f --- /dev/null +++ b/prisma/_seeder_list/inovasi/seed_layanan_online_desa.ts @@ -0,0 +1,96 @@ +import prisma from "@/lib/prisma"; +import jenisLayanan from "../../data/inovasi/layanan-online-desa/jenis-layanan.json"; +import administrasiOnline from "../../data/inovasi/layanan-online-desa/administrasi-online.json"; +import jenisPengaduan from "../../data/inovasi/layanan-online-desa/jenis-pengaduan.json"; +import pengaduanMasyarakat from "../../data/inovasi/layanan-online-desa/pengaduan-masyarakat.json"; + +export async function seedLayananOnlineDesa() { + console.log("🔄 Seeding Jenis Layanan..."); + for (const j of jenisLayanan) { + await prisma.jenisLayanan.upsert({ + where: { + id: j.id, + }, + update: { + nama: j.nama, + deskripsi: j.deskripsi, + }, + create: { + id: j.id, + nama: j.nama, + deskripsi: j.deskripsi, + }, + }); + } + console.log("✅ Jenis Layanan seeded successfully"); + console.log("🔄 Seeding Administrasi Online..."); + for (const d of administrasiOnline) { + await prisma.administrasiOnline.upsert({ + where: { + id: d.id, + }, + update: { + name: d.name, + alamat: d.alamat, + nomorTelepon: d.nomorTelepon, + jenisLayananId: d.jenisLayananId, + }, + create: { + id: d.id, + name: d.name, + alamat: d.alamat, + nomorTelepon: d.nomorTelepon, + jenisLayananId: d.jenisLayananId, + }, + }); + } + console.log("✅ Administrasi Online seeded successfully"); + console.log("🔄 Seeding Jenis Pengaduan Masyarakat..."); + for (const d of jenisPengaduan) { + await prisma.jenisPengaduan.upsert({ + where: { + id: d.id, + }, + update: { + nama: d.nama, + }, + create: { + id: d.id, + nama: d.nama, + }, + }); + } + console.log("✅ Jenis Pengaduan Masyarakat seeded successfully"); + console.log("🔄 Seeding Pengaduan Masyarakat..."); + for (const d of pengaduanMasyarakat) { + await prisma.pengaduanMasyarakat.upsert({ + where: { + id: d.id, + }, + update: { + name: d.name, + email: d.email, + nik: d.nik, + nomorTelepon: d.nomorTelepon, + judulPengaduan: d.judulPengaduan, + lokasiKejadian: d.lokasiKejadian, + imageId: d.imageId, + deskripsiPengaduan: d.deskripsiPengaduan, + jenisPengaduanId: d.jenisPengaduanId, + }, + create: { + id: d.id, + name: d.name, + email: d.email, + nik: d.nik, + nomorTelepon: d.nomorTelepon, + judulPengaduan: d.judulPengaduan, + lokasiKejadian: d.lokasiKejadian, + imageId: d.imageId, + deskripsiPengaduan: d.deskripsiPengaduan, + jenisPengaduanId: d.jenisPengaduanId, + }, + }); + } + console.log("✅ Pengaduan Masyarakat seeded successfully"); +} diff --git a/prisma/_seeder_list/inovasi/seed_program_kreatif_desa.ts b/prisma/_seeder_list/inovasi/seed_program_kreatif_desa.ts new file mode 100644 index 00000000..e98584b2 --- /dev/null +++ b/prisma/_seeder_list/inovasi/seed_program_kreatif_desa.ts @@ -0,0 +1,27 @@ +import prisma from "@/lib/prisma"; +import programKreatif from "../../data/inovasi/program-kreatif-desa/program-kreatif-desa.json"; + +export async function seedProgramKreatifDesa() { + console.log("🔄 Seeding Program Kreatif..."); + for (const p of programKreatif) { + await prisma.programKreatif.upsert({ + where: { + id: p.id, + }, + update: { + name: p.name, + deskripsi: p.deskripsi, + icon: p.icon, + slug: p.slug, + }, + create: { + id: p.id, + name: p.name, + deskripsi: p.deskripsi, + icon: p.icon, + slug: p.slug, + }, + }); + } + console.log("✅ Program Kreatif seeded successfully"); +} \ No newline at end of file diff --git a/prisma/data/ekonomi/pasar-desa/pasar-desa.json b/prisma/data/ekonomi/pasar-desa/pasar-desa.json index 956975d7..5ab82ca5 100644 --- a/prisma/data/ekonomi/pasar-desa/pasar-desa.json +++ b/prisma/data/ekonomi/pasar-desa/pasar-desa.json @@ -3,7 +3,7 @@ "id": "1b7a17ea-83f7-4e73-a94d-96e2b4a623f2", "nama": "Warung Pasar Darmasaba", "harga": 30000, - "imageId": "cmkew56ls0000vnysrnzr9ttx", + "imageName": "YdCBnK-bWxlyHjwsk4Qie-mobile.webp", "rating": 4.3, "alamatUsaha": "Br. Baler Pasar, Desa Darmasaba, Kec. Abiansemal", "kontak": "081234567890", @@ -13,7 +13,7 @@ { "id": "6dea2257-b710-4cd2-8d94-9b6737e658d8", "nama": "Jajanan Pasar Bu Made", - "imageId": "cmkewaa2s0001vnysvvs9tu56", + "imageName": "TWdNTZZbTOhFTNJGGPDyG-mobile.webp", "harga": 5000, "rating": 4.6, "alamatUsaha": "Jl. Raya Darmasaba, dekat Banjar Baler Pasar", @@ -24,7 +24,7 @@ { "id": "24c6b992-49da-4c6e-aebb-72cf89f75438", "nama": "Sayur Segar Pak Wayan", - "imageId": "cmkewcvfq0002vnys6985nm90", + "imageName": "mtQsaKtQnhxIYVIooCkiQ-mobile.webp", "harga": 20000, "rating": 4.4, "alamatUsaha": "Area Pasar Desa Darmasaba", @@ -35,7 +35,7 @@ { "id": "d62660a2-ac6b-428a-acf6-58cc837ef789", "nama": "Ayam & Daging Segar Darmasaba", - "imageId": "cmkewf4u90003vnys87en35nj", + "imageName": "Ez-SkRyf_F-1gksz_amNg-mobile.webp", "harga": 80000, "rating": 4.2, "alamatUsaha": "Br. Baler Pasar, Desa Darmasaba", diff --git a/prisma/data/inovasi/info-teknologi/info-teknologi.json b/prisma/data/inovasi/info-teknologi/info-teknologi.json index d8732f20..aac5d02f 100644 --- a/prisma/data/inovasi/info-teknologi/info-teknologi.json +++ b/prisma/data/inovasi/info-teknologi/info-teknologi.json @@ -3,24 +3,24 @@ "id": "cmkm2xlqr000mvnswdaymiho6", "name": "Darmasaba Digital App", "deskripsi": "

Aplikasi layanan desa berbasis teknologi untuk transparansi informasi dan layanan publik di Desa Darmasaba yang membantu warga mendapatkan informasi administratif, berita desa, dan pelayanan digital lainnya secara cepat dan mudah.

", - "imageId": "cmkm3bnkt000qvnswzhqa4upf" + "imageName": "xVrwJgdwtcoABPU6DB__Y-mobile.webp" }, { "id": "cmkm3b1fw000pvnswpr7hgzhp", "name": "Program Digitalisasi Desa", "deskripsi": "

Program kerja sama Desa Darmasaba bersama PT. Bali Interaktif Perkasa untuk memperkuat kapasitas pemanfaatan teknologi informasi dan komunikasi dalam administrasi desa, pelayanan publik, serta pemberdayaan digital masyarakat.

", - "imageId": "cmkm3b1a2000nvnswb9x48dzk" + "imageName": "JjUDrfqxuEMYSAza-s7A8-mobile.webp" }, { "id": "cmkm3fwmq000tvnswejmhm7yc", "name": "Pengembangan Sistem Informasi Desa", "deskripsi": "

Inisiatif pengembangan Sistem Informasi Desa yang mendukung pengelolaan data desa secara digital, termasuk data publik, laporan, dan statistik warga, sebagai bagian dari peningkatan kapabilitas teknologi informasi desa.

", - "imageId": "cmkm3fwg4000rvnsw5d1vbiz0" + "imageName": "42RCCpBZla4ZWxXcwx7kG-mobile.webp" }, { "id": "cmkm3hjp6000wvnswkuylnf53", "name": "Pelayanan Kependudukan Berbasis Digital", "deskripsi": "

Program untuk menyediakan layanan kependudukan secara digital, termasuk integrasi sistem administrasi kependudukan desa dengan sistem nasional, guna mempercepat layanan e-KTP, kartu keluarga, dan berkas kependudukan lainnya.

", - "imageId": "cmkm3hjhz000uvnswwqu6z9f6" + "imageName": "TrbkwnYM5rKZeHlISHCX4-mobile.webp" } ] diff --git a/prisma/data/inovasi/kolaborasi-inovasi/mitra-kolaborasi.json b/prisma/data/inovasi/kolaborasi-inovasi/mitra-kolaborasi.json index da49188b..91f49e24 100644 --- a/prisma/data/inovasi/kolaborasi-inovasi/mitra-kolaborasi.json +++ b/prisma/data/inovasi/kolaborasi-inovasi/mitra-kolaborasi.json @@ -2,16 +2,16 @@ { "id": "cmkm1ziyi000dvnsweg8lp3f7", "name": "TP Posyandu Bali", - "imageId": "cmkm1zis2000bvnsw85m6wdlf" + "imageName": "qJFWokQLCaO60j0XJU_33-mobile.webp" }, { "id": "cmkm1ziyi000dvnsweg8lq4g8", "name": "BRI Peduli", - "imageId": "cmkm2dgif000evnswskk0dfo9" + "imageName": "nzLJoEAfl7HkpUcYa8Y1E-mobile.webp" }, { "id": "cmkm1ziyi000dvnsweg8lr5h9", "name": "Universitas Warmadewa (KKN-PMM)", - "imageId": "cmkm2fzub000hvnswnvoytlzs" + "imageName": "JFd5C2FoaZcgDQUmvp-AO-mobile.webp" } ] diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 40780099..160857b3 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1710,8 +1710,8 @@ model InfoTekno { id String @id @default(cuid()) name String deskripsi String @db.Text - image FileStorage @relation(fields: [imageId], references: [id]) - imageId String + image FileStorage? @relation(fields: [imageId], references: [id]) + imageId String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt deletedAt DateTime @default(now()) diff --git a/prisma/seed.ts b/prisma/seed.ts index ab813bf7..973c76e6 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -37,6 +37,22 @@ import { seedPolsekTerdekat } from "./_seeder_list/keamanan/seed_polsek_terdekat import { seedKontakDaruratKeamanan } from "./_seeder_list/keamanan/seed_kontak_darurat"; import { seedPencegahanKriminalitas } from "./_seeder_list/keamanan/seed_pencegahan_kriminalitas"; import { seedLaporanPublik } from "./_seeder_list/keamanan/seed_laporan_publik"; +import { seedPasarDesa } from "./_seeder_list/ekonomi/seed_pasar_desa"; +import { seedLowonganKerjaLokal } from "./_seeder_list/ekonomi/seed_lowongan_kerja_lokal"; +import { seedDemografiPekerjaan } from "./_seeder_list/ekonomi/seed_demografi_pekerjaan"; +import { seedSektorUnggulanDesa } from "./_seeder_list/ekonomi/seed_sektor_unggulan_desa"; +import { seedProgramKemiskinan } from "./_seeder_list/ekonomi/seed_program_kemiskinan"; +import { seedJumlahPendudukMiskin } from "./_seeder_list/ekonomi/seed_jumlah_penduduk_miskin"; +import { seedPendudukUsiaKerjaYangMenganggur } from "./_seeder_list/ekonomi/seed_penduduk_usia_kerja_yang_menganggur"; +import { seedJumlahPengangguran } from "./_seeder_list/ekonomi/seed_jumlah_pengangguran"; +import { seedPendapatanAsli } from "./_seeder_list/ekonomi/seed_pendapatan_asli"; +import { seedStrukturBumdes } from "./_seeder_list/ekonomi/seed_struktur_bumdes"; +import { seedAjukan } from "./_seeder_list/inovasi/seed_ajukan"; +import { seedDesaDigital } from "./_seeder_list/inovasi/seed_desa_digital"; +import { seedLayananOnlineDesa } from "./_seeder_list/inovasi/seed_layanan_online_desa"; +import { seedProgramKreatifDesa } from "./_seeder_list/inovasi/seed_program_kreatif_desa"; +import { seedKolaborasiInovasi } from "./_seeder_list/inovasi/seed_kolaborasi_inovasi"; +import { seedInfoTeknologi } from "./_seeder_list/inovasi/seed_info_teknologi"; (async () => { const totalFiles = await prisma.fileStorage.count(); @@ -239,576 +255,51 @@ import { seedLaporanPublik } from "./_seeder_list/keamanan/seed_laporan_publik"; // // ====================== MENU EKONOMI ======================== // // ==================== SUBMENU PASAR DESA ==================== - // console.log("🔄 Seeding Kategori Produk..."); - // for (const k of kategoriProduk) { - // await prisma.kategoriProduk.upsert({ - // where: { - // id: k.id, - // }, - // update: { - // nama: k.nama, - // }, - // create: { - // id: k.id, - // nama: k.nama, - // }, - // }); - // } - // console.log("✅ Kategori Produk seeded successfully"); - - // console.log("🔄 Seeding Pasar Desa..."); - // for (const p of pasarDesa) { - // await prisma.pasarDesa.upsert({ - // where: { - // id: p.id, - // }, - // update: { - // nama: p.nama, - // imageId: p.imageId, - // harga: p.harga, - // rating: p.rating, - // alamatUsaha: p.alamatUsaha, - // kontak: p.kontak, - // deskripsi: p.deskripsi, - // kategoriProdukId: p.kategoriProdukId, - // }, - // create: { - // id: p.id, - // nama: p.nama, - // imageId: p.imageId, - // harga: p.harga, - // rating: p.rating, - // alamatUsaha: p.alamatUsaha, - // kontak: p.kontak, - // deskripsi: p.deskripsi, - // kategoriProdukId: p.kategoriProdukId, - // }, - // }); - // } - // console.log("✅ Pasar Desa seeded successfully"); - - // console.log("🔄 Seeding Kategori To Pasar..."); - // for (const p of kategoriToPasar) { - // await prisma.kategoriToPasar.upsert({ - // where: { - // id: p.id, - // }, - // update: { - // kategoriId: p.kategoriId, - // pasarDesaId: p.pasarDesaId, - // }, - // create: { - // id: p.id, - // kategoriId: p.kategoriId, - // pasarDesaId: p.pasarDesaId, - // }, - // }); - // } + await seedPasarDesa(); // // ==================== SUBMENU LOWONGAN KERJA LOKAL ========== - // console.log("🔄 Seeding Lowongan Kerja Lokal..."); - // for (const k of lowonganKerjaLokal) { - // await prisma.lowonganPekerjaan.upsert({ - // where: { - // id: k.id, - // }, - // update: { - // posisi: k.posisi, - // namaPerusahaan: k.namaPerusahaan, - // lokasi: k.lokasi, - // tipePekerjaan: k.tipePekerjaan, - // gaji: k.gaji, - // deskripsi: k.deskripsi, - // kualifikasi: k.kualifikasi, - // notelp: k.notelp, - // }, - // create: { - // id: k.id, - // posisi: k.posisi, - // namaPerusahaan: k.namaPerusahaan, - // lokasi: k.lokasi, - // tipePekerjaan: k.tipePekerjaan, - // gaji: k.gaji, - // deskripsi: k.deskripsi, - // kualifikasi: k.kualifikasi, - // notelp: k.notelp, - // }, - // }); - // } - // console.log("✅ Lowongan Kerja Lokal seeded successfully"); + await seedLowonganKerjaLokal(); // // ==================== SUBMENU STRUKTUR ORGANISASI DAN SK PENGURUS BUMDES ========== - // const sortedPosisiBumdes = flattenedPosisiBumdes.sort( - // (a, b) => a.hierarki - b.hierarki, - // ); - - // for (const p of sortedPosisiBumdes) { - // console.log(`Seeding: ${p.nama} (id: ${p.id}, parent: ${p.parentId})`); - - // if (p.parentId) { - // const parentExists = flattenedPosisi.some((pos) => pos.id === p.parentId); - // if (!parentExists) { - // console.warn( - // `⚠️ Parent tidak ditemukan: ${p.parentId} untuk ${p.nama}`, - // ); - // continue; - // } - // } - - // await prisma.posisiOrganisasiBumDes.upsert({ - // where: { id: p.id }, - // update: p, - // create: p, - // }); - // } - // console.log("posisi organisasi berhasil"); - - // for (const p of pegawai) { - // await prisma.pegawaiBumDes.upsert({ - // where: { - // id: p.id, - // }, - // update: { - // namaLengkap: p.namaLengkap, - // gelarAkademik: p.gelarAkademik, - // tanggalMasuk: new Date(p.tanggalMasuk), - // email: p.email, - // telepon: p.telepon, - // alamat: p.alamat, - // posisiId: p.posisiId, - // isActive: p.isActive, - // }, - // create: { - // id: p.id, - // namaLengkap: p.namaLengkap, - // gelarAkademik: p.gelarAkademik, - // tanggalMasuk: new Date(p.tanggalMasuk), - // email: p.email, - // telepon: p.telepon, - // alamat: p.alamat, - // posisiId: p.posisiId, - // isActive: p.isActive, - // }, - // }); - // } - // console.log("pegawai success ..."); + await seedStrukturBumdes(); // // ==================== SUBMENU PENDAPATAN ASLI DESA ========== + await seedPendapatanAsli(); // // ==================== SUBMENU JUMLAH PENGANGGURAN ========== - // for (const d of detailDataPengangguran) { - // await prisma.detailDataPengangguran.upsert({ - // where: { - // month_year: { month: d.month, year: d.year }, - // }, - // update: { - // totalUnemployment: d.totalUnemployment, - // educatedUnemployment: d.educatedUnemployment, - // uneducatedUnemployment: d.uneducatedUnemployment, - // percentageChange: d.percentageChange, - // }, - // create: { - // month: d.month, - // year: d.year, - // totalUnemployment: d.totalUnemployment, - // educatedUnemployment: d.educatedUnemployment, - // uneducatedUnemployment: d.uneducatedUnemployment, - // percentageChange: d.percentageChange, - // }, - // }); - // } - // console.log("📊 detailDataPengangguran success ..."); + await seedJumlahPengangguran(); // // ==================== SUBMENU PENDUDUK USIA KERJA ========== - // for (const p of grafikMenganggurBerdasarkanUsia) { - // await prisma.grafikMenganggurBerdasarkanUsia.upsert({ - // where: { - // id: p.id, - // }, - // update: { - // usia18_25: p.usia18_25, - // usia26_35: p.usia26_35, - // usia36_45: p.usia36_45, - // usia46_keatas: p.usia46_keatas, - // }, - // create: { - // id: p.id, - // usia18_25: p.usia18_25, - // usia26_35: p.usia26_35, - // usia36_45: p.usia36_45, - // usia46_keatas: p.usia46_keatas, - // }, - // }); - // } - // console.log("📊 grafikMenganggurBerdasarkanUsia success ..."); - - // for (const p of grafikMenganggurBerdasarkanPendidikan) { - // await prisma.grafikMenganggurBerdasarkanPendidikan.upsert({ - // where: { - // id: p.id, - // }, - // update: { - // SD: p.SD, - // SMP: p.SMP, - // SMA: p.SMA, - // D3: p.D3, - // S1: p.S1, - // }, - // create: { - // id: p.id, - // SD: p.SD, - // SMP: p.SMP, - // SMA: p.SMA, - // D3: p.D3, - // S1: p.S1, - // }, - // }); - // } - // console.log("📊 grafikMenganggurBerdasarkanUsia success ..."); + await seedPendudukUsiaKerjaYangMenganggur(); // // ==================== SUBMENU PENDUDUK MISKIN ============= - // console.log("🔄 Seeding Jumlah Penduduk Miskin..."); - // for (const k of jumlahPendudukMiskin) { - // await prisma.grafikJumlahPendudukMiskin.upsert({ - // where: { - // id: k.id, - // }, - // update: { - // year: k.year, - // totalPoorPopulation: k.totalPoorPopulation, - // }, - // create: { - // id: k.id, - // year: k.year, - // totalPoorPopulation: k.totalPoorPopulation, - // }, - // }); - // } - // console.log("✅ Jumlah Penduduk Miskin seeded successfully"); + await seedJumlahPendudukMiskin(); // // ==================== SUBMENU PROGRAM KEMISKINAN ============= - // for (const s of statistikKemiskinan) { - // await prisma.statistikKemiskinan.upsert({ - // where: { tahun: s.tahun }, // ✅ FIX - // update: { - // jumlah: s.jumlah, - // }, - // create: { - // id: s.id, // id boleh tetap - // tahun: s.tahun, - // jumlah: s.jumlah, - // }, - // }); - // } - - // console.log("📊 Statistik Kemiskinan seeded successfully"); - - // console.log("🔄 Seeding Program Kemiskinan..."); - // for (const k of programKemiskinan) { - // await prisma.programKemiskinan.upsert({ - // where: { id: k.id }, - // update: { - // nama: k.nama, - // deskripsi: k.deskripsi, - // icon: k.icon, - // statistik: { - // connect: { - // tahun: k.tahun, // 👈 BUKAN ID - // }, - // }, - // }, - // create: { - // id: k.id, - // nama: k.nama, - // deskripsi: k.deskripsi, - // icon: k.icon, - // statistik: { - // connect: { - // tahun: k.tahun, - // }, - // }, - // }, - // }); - // } - // console.log("✅ Program Kemiskinan seeded successfully"); + await seedProgramKemiskinan(); // // ==================== SUBMENU SEKTOR UNGGULAN DESA ============= - // console.log("🔄 Seeding Sektor Unggulan Desa..."); - // for (const k of sektorUnggulanDesa) { - // await prisma.sektorUnggulanDesa.upsert({ - // where: { - // id: k.id, - // }, - // update: { - // name: k.name, - // description: k.description, - // value: k.value, - // }, - // create: { - // id: k.id, - // name: k.name, - // description: k.description, - // value: k.value, - // }, - // }); - // } - // console.log("✅ Sektor Unggulan Desa seeded successfully"); + await seedSektorUnggulanDesa(); // // ==================== SUBMENU DEMOGRAFI PEKERJAAN ============= - // console.log("🔄 Seeding Demografi Pekerjaan..."); - // for (const k of demografiPekerjaan) { - // await prisma.dataDemografiPekerjaan.upsert({ - // where: { - // id: k.id, - // }, - // update: { - // pekerjaan: k.pekerjaan, - // lakiLaki: k.lakiLaki, - // perempuan: k.perempuan, - // }, - // create: { - // id: k.id, - // pekerjaan: k.pekerjaan, - // lakiLaki: k.lakiLaki, - // perempuan: k.perempuan, - // }, - // }); - // } - // console.log("✅ Demografi Pekerjaan seeded successfully"); + await seedDemografiPekerjaan(); // // ====================== MENU INOVASI ========================== // // ====================== SUBMENU AJUKAN IDE INOVATIF =========== - // console.log("🔄 Seeding Ajukan Ide Inovatif..."); - // for (const d of ajukanIde) { - // await prisma.ajukanIdeInovatif.upsert({ - // where: { - // id: d.id, - // }, - // update: { - // name: d.name, - // alamat: d.alamat, - // namaIde: d.namaIde, - // deskripsi: d.deskripsi, - // masalah: d.masalah, - // benefit: d.benefit, - // }, - // create: { - // id: d.id, - // name: d.name, - // alamat: d.alamat, - // namaIde: d.namaIde, - // deskripsi: d.deskripsi, - // masalah: d.masalah, - // benefit: d.benefit, - // }, - // }); - // } - // console.log("✅ Ajukan Ide Inovatif seeded successfully"); + await seedAjukan(); // // ==================== SUBMENU DESA DIGITAL ==================== - // console.log("🔄 Seeding Desa Digital..."); - // for (const d of desaDigital) { - // await prisma.desaDigital.upsert({ - // where: { - // id: d.id, - // }, - // update: { - // name: d.name, - // deskripsi: d.deskripsi, - // imageId: d.imageId, - // }, - // create: { - // id: d.id, - // name: d.name, - // deskripsi: d.deskripsi, - // imageId: d.imageId, - // }, - // }); - // } - // console.log("✅ Desa Digital seeded successfully"); + await seedDesaDigital(); // // ==================== SUBMENU LAYANAN ONLINE DESA ========== - // console.log("🔄 Seeding Jenis Layanan..."); - // for (const j of jenisLayanan) { - // await prisma.jenisLayanan.upsert({ - // where: { - // id: j.id, - // }, - // update: { - // nama: j.nama, - // deskripsi: j.deskripsi, - // }, - // create: { - // id: j.id, - // nama: j.nama, - // deskripsi: j.deskripsi, - // }, - // }); - // } - // console.log("✅ Jenis Layanan seeded successfully"); - - // console.log("🔄 Seeding Administrasi Online..."); - // for (const d of administrasiOnline) { - // await prisma.administrasiOnline.upsert({ - // where: { - // id: d.id, - // }, - // update: { - // name: d.name, - // alamat: d.alamat, - // nomorTelepon: d.nomorTelepon, - // jenisLayananId: d.jenisLayananId, - // }, - // create: { - // id: d.id, - // name: d.name, - // alamat: d.alamat, - // nomorTelepon: d.nomorTelepon, - // jenisLayananId: d.jenisLayananId, - // }, - // }); - // } - // console.log("✅ Administrasi Online seeded successfully"); - - // console.log("🔄 Seeding Jenis Pengaduan Masyarakat..."); - // for (const d of jenisPengaduan) { - // await prisma.jenisPengaduan.upsert({ - // where: { - // id: d.id, - // }, - // update: { - // nama: d.nama, - // }, - // create: { - // id: d.id, - // nama: d.nama, - // }, - // }); - // } - // console.log("✅ Jenis Pengaduan Masyarakat seeded successfully"); - - // console.log("🔄 Seeding Pengaduan Masyarakat..."); - // for (const d of pengaduanMasyarakat) { - // await prisma.pengaduanMasyarakat.upsert({ - // where: { - // id: d.id, - // }, - // update: { - // name: d.name, - // email: d.email, - // nik: d.nik, - // nomorTelepon: d.nomorTelepon, - // judulPengaduan: d.judulPengaduan, - // lokasiKejadian: d.lokasiKejadian, - // imageId: d.imageId, - // deskripsiPengaduan: d.deskripsiPengaduan, - // jenisPengaduanId: d.jenisPengaduanId, - // }, - // create: { - // id: d.id, - // name: d.name, - // email: d.email, - // nik: d.nik, - // nomorTelepon: d.nomorTelepon, - // judulPengaduan: d.judulPengaduan, - // lokasiKejadian: d.lokasiKejadian, - // imageId: d.imageId, - // deskripsiPengaduan: d.deskripsiPengaduan, - // jenisPengaduanId: d.jenisPengaduanId, - // }, - // }); - // } - // console.log("✅ Pengaduan Masyarakat seeded successfully"); + await seedLayananOnlineDesa(); // // ==================== SUBMENU PROGRAM KREATIF ========== - // console.log("🔄 Seeding Program Kreatif..."); - // for (const p of programKreatif) { - // await prisma.programKreatif.upsert({ - // where: { - // id: p.id, - // }, - // update: { - // name: p.name, - // deskripsi: p.deskripsi, - // icon: p.icon, - // slug: p.slug, - // }, - // create: { - // id: p.id, - // name: p.name, - // deskripsi: p.deskripsi, - // icon: p.icon, - // slug: p.slug, - // }, - // }); - // } - // console.log("✅ Program Kreatif seeded successfully"); - + await seedProgramKreatifDesa(); // // ==================== SUBMENU KOLABORASI INOVASI ========== - // console.log("🔄 Seeding Kolaborasi Inovasi..."); - // for (const p of kolaborasiInovasi) { - // await prisma.kolaborasiInovasi.upsert({ - // where: { - // id: p.id, - // }, - // update: { - // name: p.name, - // tahun: p.tahun, - // slug: p.slug, - // deskripsi: p.deskripsi, - // kolaborator: p.kolaborator, - // }, - // create: { - // id: p.id, - // name: p.name, - // tahun: p.tahun, - // slug: p.slug, - // deskripsi: p.deskripsi, - // kolaborator: p.kolaborator, - // }, - // }); - // } - // console.log("✅ Kolaborasi Inovasi seeded successfully"); - - // console.log("🔄 Seeding Mitra Kolaborasi..."); - // for (const p of mitraKolaborasi) { - // await prisma.mitraKolaborasi.upsert({ - // where: { - // id: p.id, - // }, - // update: { - // name: p.name, - // imageId: p.imageId, - // }, - // create: { - // id: p.id, - // name: p.name, - // imageId: p.imageId, - // }, - // }); - // } - // console.log("✅ Mitra Kolaborasi seeded successfully"); + await seedKolaborasiInovasi(); // // ==================== SUBMENU INFO TEKNOLOGI TEPAT GUNA ========== - // console.log("🔄 Seeding Info Teknologi..."); - // for (const p of infoTeknologi) { - // await prisma.infoTekno.upsert({ - // where: { - // id: p.id, - // }, - // update: { - // name: p.name, - // deskripsi: p.deskripsi, - // imageId: p.imageId, - // }, - // create: { - // id: p.id, - // name: p.name, - // deskripsi: p.deskripsi, - // imageId: p.imageId, - // }, - // }); - // } - // console.log("✅ Info Teknologi seeded successfully"); + await seedInfoTeknologi(); // // ====================== MENU LINGKUNGAN ========================== // // ==================== SUBMENU PENGELOLAAN SAMPAH ========== diff --git a/src/app/darmasaba/(pages)/inovasi/info-teknologi-tepat-guna/page.tsx b/src/app/darmasaba/(pages)/inovasi/info-teknologi-tepat-guna/page.tsx index d66c8dde..aeaca1bf 100644 --- a/src/app/darmasaba/(pages)/inovasi/info-teknologi-tepat-guna/page.tsx +++ b/src/app/darmasaba/(pages)/inovasi/info-teknologi-tepat-guna/page.tsx @@ -86,7 +86,7 @@ function Page() { return ( - + {v.name} diff --git a/src/app/darmasaba/(pages)/inovasi/kolaborasi-inovasi/page.tsx b/src/app/darmasaba/(pages)/inovasi/kolaborasi-inovasi/page.tsx index 7181199b..3543b70c 100644 --- a/src/app/darmasaba/(pages)/inovasi/kolaborasi-inovasi/page.tsx +++ b/src/app/darmasaba/(pages)/inovasi/kolaborasi-inovasi/page.tsx @@ -147,7 +147,7 @@ function Page() {
{m.image?.link ? (