feat: add kependudukan seeders, API routes, year filter, and navbar menu

- Add Prisma models: DataBanjar, DistribusiAgama, DistribusiUmur, MigrasiPenduduk, DinamikaPenduduk
- Create seeders for all kependudukan models with year 2026 data
- Register Kependudukan API routes in route.ts
- Update API findMany endpoints to make tahun parameter optional
- Add YearFilter reusable component for admin pages
- Update 4 kependudukan admin pages with year filter UI
- Fix Mantine color array in AdminThemeProvider (add 10th element)
- Fix invalid Mantine color scale in paguTable.tsx (gray.50 -> gray.1)
- Add Kependudukan menu to navbar-list-menu.ts
- Fix Bun JSON import resolution with loadJsonData helper
- Update 74 seeder files to use dynamic JSON loading

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
2026-04-10 11:54:36 +08:00
parent 5e822f0b05
commit 8b14c6ce44
146 changed files with 3051 additions and 201 deletions

View File

@@ -0,0 +1,57 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const appMenuJson = loadJsonData("core/app-menu.json");
const appMenuChildJson = loadJsonData("core/app-menu-child.json");
export async function seedAppMenu() {
console.log("🔄 Seeding AppMenu...");
for (const item of appMenuJson) {
await prisma.appMenu.upsert({
where: { id: item.id },
update: {
name: item.name,
link: item.link,
isActive: item.isActive,
},
create: {
id: item.id,
name: item.name,
link: item.link,
isActive: item.isActive,
},
});
console.log(`✅ AppMenu seeded: ${item.name}`);
}
console.log("🎉 AppMenu seed selesai");
}
export async function seedAppMenuChild() {
console.log("🔄 Seeding AppMenuChild...");
for (const item of appMenuChildJson) {
await prisma.appMenuChild.upsert({
where: { id: item.id },
update: {
name: item.name,
link: item.link,
isActive: item.isActive,
appMenuId: item.appMenuId,
},
create: {
id: item.id,
name: item.name,
link: item.link,
isActive: item.isActive,
appMenuId: item.appMenuId,
},
});
console.log(`✅ AppMenuChild seeded: ${item.name}`);
}
console.log("🎉 AppMenuChild seed selesai");
}

View File

@@ -0,0 +1,69 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const layananJson = loadJsonData("core/layanan.json");
const potensiJson = loadJsonData("core/potensi.json");
const landingPageLayananJson = loadJsonData("core/landingpage-layanan.json");
export async function seedLayananCore() {
console.log("🔄 Seeding Layanan...");
for (const item of layananJson) {
await prisma.layanan.upsert({
where: { id: item.id },
update: {
name: item.name,
},
create: {
id: item.id,
name: item.name,
},
});
console.log(`✅ Layanan seeded: ${item.name}`);
}
console.log("🎉 Layanan seed selesai");
}
export async function seedPotensiCore() {
console.log("🔄 Seeding Potensi...");
for (const item of potensiJson) {
await prisma.potensi.upsert({
where: { id: item.id },
update: {
name: item.name,
},
create: {
id: item.id,
name: item.name,
},
});
console.log(`✅ Potensi seeded: ${item.name}`);
}
console.log("🎉 Potensi seed selesai");
}
export async function seedLandingPageLayanan() {
console.log("🔄 Seeding LandingPage_Layanan...");
for (const item of landingPageLayananJson) {
await prisma.landingPage_Layanan.upsert({
where: { id: item.id },
update: {
deksripsi: item.deksripsi,
},
create: {
id: item.id,
deksripsi: item.deksripsi,
},
});
console.log(`✅ LandingPage_Layanan seeded: ${item.id}`);
}
console.log("🎉 LandingPage_Layanan seed selesai");
}

View File

@@ -1,6 +1,8 @@
import prisma from "@/lib/prisma";
import kategoriBerita from "../../../data/desa/berita/kategori-berita.json";
import beritaJson from "../../../data/desa/berita/berita.json";
import { loadJsonData } from "../../../load-json";
const kategoriBerita = loadJsonData("desa/berita/kategori-berita.json");
const beritaJson = loadJsonData("desa/berita/berita.json");
export async function seedBerita() {
// ================== SUBMENU BERITA ========================

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import foto from "../../../../data/desa/gallery/foto/foto.json";
import { loadJsonData } from "../../../../load-json";
const foto = loadJsonData("desa/gallery/foto/foto.json");
export async function seedFoto() {
console.log("🔄 Seeding Foto...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import galleryVideo from "../../../../data/desa/gallery/video/video.json";
import { loadJsonData } from "../../../../load-json";
const galleryVideo = loadJsonData("desa/gallery/video/video.json");
export async function seedVideo() {
console.log("🔄 Seeding Gallery Video...");

View File

@@ -1,8 +1,10 @@
import prisma from "@/lib/prisma";
import pelayananSuratKeterangan from "../../../data/desa/layanan/pelayananSuratKeterangan.json";
import pelayananTelunjukSaktiDesa from "../../../data/desa/layanan/pelayananTelunjukSaktiDesa.json";
import pelayananPerizinanBerusaha from "../../../data/desa/layanan/pelayananPerizinanBerusaha.json";
import pelayananPendudukNonPermanen from "../../../data/desa/layanan/pelayananPendudukNonPermanen.json";
import { loadJsonData } from "../../../load-json";
const pelayananSuratKeterangan = loadJsonData("desa/layanan/pelayananSuratKeterangan.json");
const pelayananTelunjukSaktiDesa = loadJsonData("desa/layanan/pelayananTelunjukSaktiDesa.json");
const pelayananPerizinanBerusaha = loadJsonData("desa/layanan/pelayananPerizinanBerusaha.json");
const pelayananPendudukNonPermanen = loadJsonData("desa/layanan/pelayananPendudukNonPermanen.json");
export async function seedLayanan() {
console.log("🔄 Seeding Pelayanan Surat Keterangan...");

View File

@@ -0,0 +1,57 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../../load-json";
const musikJson = loadJsonData("desa/musik-desa/musik-desa.json");
export async function seedMusikDesa() {
console.log("Seeding Musik Desa...");
for (const item of musikJson) {
let audioFileId: string | null = null;
let coverImageId: string | null = null;
if (item.audioFileName) {
const audio = await prisma.fileStorage.findUnique({
where: { name: item.audioFileName },
select: { id: true },
});
if (audio) audioFileId = audio.id;
}
if (item.coverImageName) {
const cover = await prisma.fileStorage.findUnique({
where: { name: item.coverImageName },
select: { id: true },
});
if (cover) coverImageId = cover.id;
}
await prisma.musikDesa.upsert({
where: { id: item.id },
update: {
judul: item.judul,
artis: item.artis,
deskripsi: item.deskripsi,
durasi: item.durasi,
audioFileId,
coverImageId,
genre: item.genre,
tahunRilis: item.tahunRilis,
},
create: {
id: item.id,
judul: item.judul,
artis: item.artis,
deskripsi: item.deskripsi,
durasi: item.durasi,
audioFileId,
coverImageId,
genre: item.genre,
tahunRilis: item.tahunRilis,
},
});
console.log(` Musik: ${item.judul} - ${item.artis}`);
}
console.log("Musik Desa seed selesai");
}

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import penghargaan from "../../../data/desa/penghargaan/penghargaan.json"
import { loadJsonData } from "../../../load-json";
const penghargaan = loadJsonData("desa/penghargaan/penghargaan.json");
export async function seedPenghargaan() {
console.log("🔄 Seeding Penghargaan...");

View File

@@ -1,7 +1,9 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../../load-json";
import { safeSeedUnique } from "../../../safeseedUnique";
import kategoriPengumuman from "../../../data/desa/pengumuman/kategori-pengumuman.json";
import pengumuman from "../../../data/desa/pengumuman/pengumuman.json";
const kategoriPengumuman = loadJsonData("desa/pengumuman/kategori-pengumuman.json");
const pengumuman = loadJsonData("desa/pengumuman/pengumuman.json");
export async function seedPengumuman() {
console.log("🔄 Seeding Kategori Pengumuman...");

View File

@@ -1,6 +1,8 @@
import prisma from "@/lib/prisma";
import kategoriPotensi from "../../../data/desa/potensi/kategori-potensi.json";
import potensiDesa from "../../../data/desa/potensi/potensi-desa.json";
import { loadJsonData } from "../../../load-json";
const kategoriPotensi = loadJsonData("desa/potensi/kategori-potensi.json");
const potensiDesa = loadJsonData("desa/potensi/potensi-desa.json");
export async function seedPotensi() {
console.log("🔄Seeding Kategori Potensi Desa ...");

View File

@@ -1,10 +1,12 @@
import prisma from "@/lib/prisma";
import lambangDesa from "../../../data/desa/profile/lambang_desa.json";
import maskotDesa from "../../../data/desa/profile/maskot_desa.json";
import profilePerbekel from "../../../data/desa/profile/profil_perbekel.json";
import profileDesaImage from "../../../data/desa/profile/profileDesaImage.json";
import sejarahDesa from "../../../data/desa/profile/sejarah_desa.json";
import visiMisiDesa from "../../../data/desa/profile/visi_misi_desa.json";
import { loadJsonData } from "../../../load-json";
const lambangDesa = loadJsonData("desa/profile/lambang_desa.json");
const maskotDesa = loadJsonData("desa/profile/maskot_desa.json");
const profilePerbekel = loadJsonData("desa/profile/profil_perbekel.json");
const profileDesaImage = loadJsonData("desa/profile/profileDesaImage.json");
const sejarahDesa = loadJsonData("desa/profile/sejarah_desa.json");
const visiMisiDesa = loadJsonData("desa/profile/visi_misi_desa.json");
export async function seedProfileDesa() {
// =========== SEJARAH DESA ===========

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import perbekelDariMasaKeMasa from "../../../data/desa/profile/profile-perbekel-lalu.json";
import { loadJsonData } from "../../../load-json";
const perbekelDariMasaKeMasa = loadJsonData("desa/profile/profile-perbekel-lalu.json");
export async function seedProfilePerbekel() {
console.log("🔄 Seeding Perbekel Dari Masa Ke Masa...");

View File

@@ -0,0 +1,45 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const apbdesJson = loadJsonData("ekonomi/apbdes/apbdes.json");
export async function seedAPBDes() {
console.log("Seeding APBDes...");
for (const item of apbdesJson) {
let imageId: string | null = null;
let fileId: string | null = null;
if (item.imageName) {
const image = await prisma.fileStorage.findUnique({
where: { name: item.imageName },
select: { id: true },
});
if (image) imageId = image.id;
}
await prisma.aPBDes.upsert({
where: { id: item.id },
update: {
tahun: item.tahun,
name: item.name,
deskripsi: item.deskripsi,
jumlah: item.jumlah,
imageId,
fileId,
},
create: {
id: item.id,
tahun: item.tahun,
name: item.name,
deskripsi: item.deskripsi,
jumlah: item.jumlah,
imageId,
fileId,
},
});
console.log(` APBDes: ${item.name}`);
}
console.log("APBDes seed selesai");
}

View File

@@ -0,0 +1,63 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const itemsJson = loadJsonData("ekonomi/apbdes/apbdes-items.json");
const realisasiJson = loadJsonData("ekonomi/apbdes/realisasi-items.json");
export async function seedAPBDesItem() {
console.log("Seeding APBDes Items...");
// Seed items first (sorted by level to ensure parents exist)
const sortedItems = [...itemsJson].sort((a, b) => a.level - b.level);
for (const item of sortedItems) {
await prisma.aPBDesItem.upsert({
where: { id: item.id },
update: {
kode: item.kode,
uraian: item.uraian,
anggaran: item.anggaran,
tipe: item.tipe,
level: item.level,
parentId: item.parentId,
apbdesId: item.apbdesId,
},
create: {
id: item.id,
kode: item.kode,
uraian: item.uraian,
anggaran: item.anggaran,
tipe: item.tipe,
level: item.level,
parentId: item.parentId,
apbdesId: item.apbdesId,
},
});
console.log(` APBDes Item: ${item.kode} - ${item.uraian}`);
}
console.log("Seeding Realisasi Items...");
for (const item of realisasiJson) {
await prisma.realisasiItem.upsert({
where: { id: item.id },
update: {
kode: item.kode,
apbdesItemId: item.apbdesItemId,
jumlah: item.jumlah,
tanggal: new Date(item.tanggal),
keterangan: item.keterangan,
},
create: {
id: item.id,
kode: item.kode,
apbdesItemId: item.apbdesItemId,
jumlah: item.jumlah,
tanggal: new Date(item.tanggal),
keterangan: item.keterangan,
},
});
console.log(` Realisasi: ${item.kode} - Rp ${item.jumlah.toLocaleString("id-ID")}`);
}
console.log("APBDes Item & Realisasi seed selesai");
}

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import demografiPekerjaan from "../../data/ekonomi/demografi-pekerjaan/demografi-pekerjaan.json";
import { loadJsonData } from "../../load-json";
const demografiPekerjaan = loadJsonData("ekonomi/demografi-pekerjaan/demografi-pekerjaan.json");
export async function seedDemografiPekerjaan() {
console.log("🔄 Seeding Demografi Pekerjaan...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import jumlahPendudukMiskin from "../../data/ekonomi/jumlah-penduduk-miskin/jumlah-penduduk-miskin.json";
import { loadJsonData } from "../../load-json";
const jumlahPendudukMiskin = loadJsonData("ekonomi/jumlah-penduduk-miskin/jumlah-penduduk-miskin.json");
export async function seedJumlahPendudukMiskin() {
console.log("🔄 Seeding Jumlah Penduduk Miskin...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import jumlahPengangguran from "../../data/ekonomi/jumlah-pengangguran/detail-data-pengangguran.json";
import { loadJsonData } from "../../load-json";
const jumlahPengangguran = loadJsonData("ekonomi/jumlah-pengangguran/detail-data-pengangguran.json");
export async function seedJumlahPengangguran() {
for (const d of jumlahPengangguran) {

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import lowonganKerjaLokal from "../../data/ekonomi/lowongan-kerja-lokal/lowongan-kerja-lokal.json";
import { loadJsonData } from "../../load-json";
const lowonganKerjaLokal = loadJsonData("ekonomi/lowongan-kerja-lokal/lowongan-kerja-lokal.json");
export async function seedLowonganKerjaLokal() {
console.log("🔄 Seeding Lowongan Kerja Lokal...");

View File

@@ -1,7 +1,9 @@
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";
import { loadJsonData } from "../../load-json";
const kategoriProduk = loadJsonData("ekonomi/pasar-desa/kategori-produk.json");
const pasarDesa = loadJsonData("ekonomi/pasar-desa/pasar-desa.json");
const kategoriToPasar = loadJsonData("ekonomi/pasar-desa/kategori-to-pasar.json");
export async function seedPasarDesa() {
console.log("🔄 Seeding Kategori Produk...");

View File

@@ -1,8 +1,10 @@
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";
import { loadJsonData } from "../../load-json";
const apbdes = loadJsonData("ekonomi/pendapatan-asli-desa/apbDesa.json");
const pendapatan = loadJsonData("ekonomi/pendapatan-asli-desa/pendapatanDesa.json");
const belanja = loadJsonData("ekonomi/pendapatan-asli-desa/belanjaDesa.json");
const pembiayaan = loadJsonData("ekonomi/pendapatan-asli-desa/pembiayaanDesa.json");
export async function seedPendapatanAsli() {
console.log("🔄 Seeding Pendapatan Asli...");

View File

@@ -1,6 +1,8 @@
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";
import { loadJsonData } from "../../load-json";
const grafikMenganggurBerdasarkanUsia = loadJsonData("ekonomi/jumlah-penduduk-usia-kerja-yang-menganggur/pengangguran-berdasarkan-usia.json");
const grafikMenganggurBerdasarkanPendidikan = loadJsonData("ekonomi/jumlah-penduduk-usia-kerja-yang-menganggur/pengangguran-berdasarkan-pendidikan.json");
export async function seedPendudukUsiaKerjaYangMenganggur() {
for (const p of grafikMenganggurBerdasarkanUsia) {

View File

@@ -1,6 +1,8 @@
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";
import { loadJsonData } from "../../load-json";
const programKemiskinan = loadJsonData("ekonomi/program-kemiskinan/program-kemiskinan.json");
const statistikKemiskinan = loadJsonData("ekonomi/program-kemiskinan/statistik-kemiskinan.json");
export async function seedProgramKemiskinan() {
for (const s of statistikKemiskinan) {

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import sektorUnggulanDesa from "../../data/ekonomi/sektor-unggulan/sektor-unggulan.json";
import { loadJsonData } from "../../load-json";
const sektorUnggulanDesa = loadJsonData("ekonomi/sektor-unggulan/sektor-unggulan.json");
export async function seedSektorUnggulanDesa() {
console.log("🔄 Seeding Sektor Unggulan Desa...");

View File

@@ -1,6 +1,8 @@
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";
import { loadJsonData } from "../../load-json";
const posisiOrganisasiBumDes = loadJsonData("ekonomi/struktur-organisasi/posisi-organisasi-bumdes.json");
const pegawai = loadJsonData("ekonomi/struktur-organisasi/pegawai-bumdes.json");
export async function seedStrukturBumdes() {
const flattenedPosisi = posisiOrganisasiBumDes.flat();

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import ajukanIde from "../../data/inovasi/ajukan-ide/ajukan-ide.json";
import { loadJsonData } from "../../load-json";
const ajukanIde = loadJsonData("inovasi/ajukan-ide/ajukan-ide.json");
export async function seedAjukan() {
console.log("🔄 Seeding Ajukan Ide Inovatif...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import desaDigital from "../../data/inovasi/desa-digital/desa-digital.json";
import { loadJsonData } from "../../load-json";
const desaDigital = loadJsonData("inovasi/desa-digital/desa-digital.json");
export async function seedDesaDigital() {
console.log("🔄 Seeding Desa Digital...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import infoTeknologi from "../../data/inovasi/info-teknologi/info-teknologi.json";
import { loadJsonData } from "../../load-json";
const infoTeknologi = loadJsonData("inovasi/info-teknologi/info-teknologi.json");
export async function seedInfoTeknologi() {
console.log("🔄 Seeding Info Teknologi...");

View File

@@ -1,6 +1,8 @@
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";
import { loadJsonData } from "../../load-json";
const kolaborasiInovasi = loadJsonData("inovasi/kolaborasi-inovasi/kolaborasi-inovasi.json");
const mitraKolaborasi = loadJsonData("inovasi/kolaborasi-inovasi/mitra-kolaborasi.json");
export async function seedKolaborasiInovasi() {
console.log("🔄 Seeding Kolaborasi Inovasi...");

View File

@@ -1,8 +1,10 @@
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";
import { loadJsonData } from "../../load-json";
const jenisLayanan = loadJsonData("inovasi/layanan-online-desa/jenis-layanan.json");
const administrasiOnline = loadJsonData("inovasi/layanan-online-desa/administrasi-online.json");
const jenisPengaduan = loadJsonData("inovasi/layanan-online-desa/jenis-pengaduan.json");
const pengaduanMasyarakat = loadJsonData("inovasi/layanan-online-desa/pengaduan-masyarakat.json");
export async function seedLayananOnlineDesa() {
console.log("🔄 Seeding Jenis Layanan...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import programKreatif from "../../data/inovasi/program-kreatif-desa/program-kreatif-desa.json";
import { loadJsonData } from "../../load-json";
const programKreatif = loadJsonData("inovasi/program-kreatif-desa/program-kreatif-desa.json");
export async function seedProgramKreatifDesa() {
console.log("🔄 Seeding Program Kreatif...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import keamananLingkunganJson from "../../data/keamanan/keamanan-lingkungan/keamanan-lingkungan.json";
import { loadJsonData } from "../../load-json";
const keamananLingkunganJson = loadJsonData("keamanan/keamanan-lingkungan/keamanan-lingkungan.json");
export async function seedKeamananLingkungan() {
console.log("🔄 Seeding Keamanan Lingkungan...");

View File

@@ -1,7 +1,9 @@
import prisma from "@/lib/prisma";
import kontakDaruratKeamanan from "../../data/keamanan/kontak-darurat-keamanan/kontak-darurat-keamanan.json";
import kontakItem from "../../data/keamanan/kontak-darurat-keamanan/kontakItem.json";
import kontakDaruratToItem from "../../data/keamanan/kontak-darurat-keamanan/kontakDaruratToItem.json";
import { loadJsonData } from "../../load-json";
const kontakDaruratKeamanan = loadJsonData("keamanan/kontak-darurat-keamanan/kontak-darurat-keamanan.json");
const kontakItem = loadJsonData("keamanan/kontak-darurat-keamanan/kontakItem.json");
const kontakDaruratToItem = loadJsonData("keamanan/kontak-darurat-keamanan/kontakDaruratToItem.json");
export async function seedKontakDaruratKeamanan() {
console.log("🔄 Seeding Kontak Item...");

View File

@@ -1,6 +1,8 @@
import prisma from "@/lib/prisma";
import laporanPublik from "../../data/keamanan/laporan-publik/laporan-publik.json";
import penangananLaporan from "../../data/keamanan/laporan-publik/penanganan-laporan.json";
import { loadJsonData } from "../../load-json";
const laporanPublik = loadJsonData("keamanan/laporan-publik/laporan-publik.json");
const penangananLaporan = loadJsonData("keamanan/laporan-publik/penanganan-laporan.json");
export async function seedLaporanPublik() {
console.log("🔄 Seeding Laporan Publik...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import pencegahanKriminalitas from "../../data/keamanan/pencegahan-kriminalitas/pencegahan-kriminalitas.json";
import { loadJsonData } from "../../load-json";
const pencegahanKriminalitas = loadJsonData("keamanan/pencegahan-kriminalitas/pencegahan-kriminalitas.json");
export async function seedPencegahanKriminalitas() {
console.log("🔄 Seeding Pencegahan Kriminalitas...");

View File

@@ -1,7 +1,9 @@
import prisma from "@/lib/prisma";
import layananPolsek from "../../data/keamanan/polsek-terdekat/layanan-polsek.json";
import polsekTerdekat from "../../data/keamanan/polsek-terdekat/polsek-terdekat.json";
import layananToPolsek from "../../data/keamanan/polsek-terdekat/layanan-to-polsek.json";
import { loadJsonData } from "../../load-json";
const layananPolsek = loadJsonData("keamanan/polsek-terdekat/layanan-polsek.json");
const polsekTerdekat = loadJsonData("keamanan/polsek-terdekat/polsek-terdekat.json");
const layananToPolsek = loadJsonData("keamanan/polsek-terdekat/layanan-to-polsek.json");
export async function seedPolsekTerdekat() {
console.log("🔄 Seeding Layanan Polsek...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import tipsKeamananJson from "../../data/keamanan/tips-keamanan/tips-keamanan.json";
import { loadJsonData } from "../../load-json";
const tipsKeamananJson = loadJsonData("keamanan/tips-keamanan/tips-keamanan.json");
export async function seedTipsKeamanan() {
console.log("🔄 Seeding Tips Keamanan...");

View File

@@ -0,0 +1,32 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const dataBanjarJson = loadJsonData("kependudukan/data-banjar/data-banjar.json");
export async function seedDataBanjar() {
console.log("Seeding Data Banjar...");
for (const item of dataBanjarJson) {
await prisma.dataBanjar.upsert({
where: { id: item.id },
update: {
nama: item.nama,
penduduk: item.penduduk,
kk: item.kk,
miskin: item.miskin,
tahun: item.tahun,
},
create: {
id: item.id,
nama: item.nama,
penduduk: item.penduduk,
kk: item.kk,
miskin: item.miskin,
tahun: item.tahun,
},
});
console.log(` Banjar: ${item.nama} (${item.penduduk} penduduk)`);
}
console.log("Data Banjar seed selesai");
}

View File

@@ -0,0 +1,32 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const dinamikaPendudukJson = loadJsonData("kependudukan/dinamika-penduduk/dinamika-penduduk.json");
export async function seedDinamikaPenduduk() {
console.log("Seeding Dinamika Penduduk...");
for (const item of dinamikaPendudukJson) {
await prisma.dinamikaPenduduk.upsert({
where: { id: item.id },
update: {
tahun: item.tahun,
kelahiran: item.kelahiran,
kematian: item.kematian,
masuk: item.masuk,
keluar: item.keluar,
},
create: {
id: item.id,
tahun: item.tahun,
kelahiran: item.kelahiran,
kematian: item.kematian,
masuk: item.masuk,
keluar: item.keluar,
},
});
console.log(` Tahun ${item.tahun}: ${item.kelahiran} kelahiran, ${item.kematian} kematian`);
}
console.log("Dinamika Penduduk seed selesai");
}

View File

@@ -0,0 +1,28 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const distribusiAgamaJson = loadJsonData("kependudukan/distribusi-agama/distribusi-agama.json");
export async function seedDistribusiAgama() {
console.log("Seeding Distribusi Agama...");
for (const item of distribusiAgamaJson) {
await prisma.distribusiAgama.upsert({
where: { id: item.id },
update: {
agama: item.agama,
jumlah: item.jumlah,
tahun: item.tahun,
},
create: {
id: item.id,
agama: item.agama,
jumlah: item.jumlah,
tahun: item.tahun,
},
});
console.log(` ${item.agama}: ${item.jumlah} penganut`);
}
console.log("Distribusi Agama seed selesai");
}

View File

@@ -0,0 +1,28 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const distribusiUmurJson = loadJsonData("kependudukan/distribusi-umur/distribusi-umur.json");
export async function seedDistribusiUmur() {
console.log("Seeding Distribusi Umur...");
for (const item of distribusiUmurJson) {
await prisma.distribusiUmur.upsert({
where: { id: item.id },
update: {
kelompok: item.kelompok,
jumlah: item.jumlah,
tahun: item.tahun,
},
create: {
id: item.id,
kelompok: item.kelompok,
jumlah: item.jumlah,
tahun: item.tahun,
},
});
console.log(` Kelompok ${item.kelompok}: ${item.jumlah} jiwa`);
}
console.log("Distribusi Umur seed selesai");
}

View File

@@ -0,0 +1,34 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const migrasiPendudukJson = loadJsonData("kependudukan/migrasi-penduduk/migrasi-penduduk.json");
export async function seedMigrasiPenduduk() {
console.log("Seeding MigrASI PENDUDUK...");
for (const item of migrasiPendudukJson) {
await prisma.migrasiPenduduk.upsert({
where: { id: item.id },
update: {
nama: item.nama,
jenis: item.jenis,
tanggal: new Date(item.tanggal),
asal: item.asal,
tujuan: item.tujuan,
alasan: item.alasan,
},
create: {
id: item.id,
nama: item.nama,
jenis: item.jenis,
tanggal: new Date(item.tanggal),
asal: item.asal,
tujuan: item.tujuan,
alasan: item.alasan,
},
});
console.log(` ${item.nama}: ${item.jenis} (${item.alasan})`);
}
console.log("Migrasi Penduduk seed selesai");
}

View File

@@ -0,0 +1,106 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../../load-json";
const artikelJson = loadJsonData("kesehatan/artikel-kesehatan/artikel-kesehatan.json");
const introJson = loadJsonData("kesehatan/artikel-kesehatan/introduction.json");
const symptomJson = loadJsonData("kesehatan/artikel-kesehatan/symptom.json");
const preventionJson = loadJsonData("kesehatan/artikel-kesehatan/prevention.json");
const firstAidJson = loadJsonData("kesehatan/artikel-kesehatan/first-aid.json");
const mythVsFactJson = loadJsonData("kesehatan/artikel-kesehatan/myth-vs-fact.json");
const doctorSignJson = loadJsonData("kesehatan/artikel-kesehatan/doctor-sign.json");
export async function seedArtikelKesehatan() {
console.log("Seeding Introduction...");
for (const item of introJson) {
await prisma.introduction.upsert({
where: { id: item.id },
update: { content: item.content },
create: { id: item.id, content: item.content },
});
}
console.log("Seeding Symptom...");
for (const item of symptomJson) {
await prisma.symptom.upsert({
where: { id: item.id },
update: { title: item.title, content: item.content },
create: { id: item.id, title: item.title, content: item.content },
});
}
console.log("Seeding Prevention...");
for (const item of preventionJson) {
await prisma.prevention.upsert({
where: { id: item.id },
update: { title: item.title, content: item.content },
create: { id: item.id, title: item.title, content: item.content },
});
}
console.log("Seeding First Aid...");
for (const item of firstAidJson) {
await prisma.firstAid.upsert({
where: { id: item.id },
update: { title: item.title, content: item.content },
create: { id: item.id, title: item.title, content: item.content },
});
}
console.log("Seeding Myth vs Fact...");
for (const item of mythVsFactJson) {
await prisma.mythVsFact.upsert({
where: { id: item.id },
update: {
title: item.title,
mitos: item.mitos,
fakta: item.fakta,
},
create: {
id: item.id,
title: item.title,
mitos: item.mitos,
fakta: item.fakta,
},
});
}
console.log("Seeding Doctor Sign...");
for (const item of doctorSignJson) {
await prisma.doctorSign.upsert({
where: { id: item.id },
update: { content: item.content },
create: { id: item.id, content: item.content },
});
}
console.log("Seeding Artikel Kesehatan...");
for (const item of artikelJson) {
await prisma.artikelKesehatan.upsert({
where: { id: item.id },
update: {
title: item.title,
content: item.content,
introductionId: item.introductionId,
symptomId: item.symptomId,
preventionId: item.preventionId,
firstAidId: item.firstAidId,
mythVsFactId: item.mythVsFactId,
doctorSignId: item.doctorSignId,
},
create: {
id: item.id,
title: item.title,
content: item.content,
introductionId: item.introductionId,
symptomId: item.symptomId,
preventionId: item.preventionId,
firstAidId: item.firstAidId,
mythVsFactId: item.mythVsFactId,
doctorSignId: item.doctorSignId,
},
});
console.log(` Artikel: ${item.title}`);
}
console.log("Artikel Kesehatan seed selesai");
}

View File

@@ -0,0 +1,122 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../../load-json";
const faskesJson = loadJsonData("kesehatan/fasilitas-kesehatan/fasilitas-kesehatan.json");
const infoUmumJson = loadJsonData("kesehatan/fasilitas-kesehatan/informasi-umum.json");
const layananUnggulanJson = loadJsonData("kesehatan/fasilitas-kesehatan/layanan-unggulan.json");
const dokterJson = loadJsonData("kesehatan/fasilitas-kesehatan/dokter-tenaga-medis.json");
const fasilitasPendukungJson = loadJsonData("kesehatan/fasilitas-kesehatan/fasilitas-pendukung.json");
const prosedurJson = loadJsonData("kesehatan/fasilitas-kesehatan/prosedur-pendaftaran.json");
const tarifJson = loadJsonData("kesehatan/fasilitas-kesehatan/tarif-layanan.json");
export async function seedFasilitasKesehatan() {
console.log("Seeding Informasi Umum...");
for (const item of infoUmumJson) {
await prisma.informasiUmum.upsert({
where: { id: item.id },
update: {
fasilitas: item.fasilitas,
alamat: item.alamat,
jamOperasional: item.jamOperasional,
},
create: {
id: item.id,
fasilitas: item.fasilitas,
alamat: item.alamat,
jamOperasional: item.jamOperasional,
},
});
console.log(` Informasi Umum: ${item.fasilitas}`);
}
console.log("Seeding Layanan Unggulan...");
for (const item of layananUnggulanJson) {
await prisma.layananUnggulan.upsert({
where: { id: item.id },
update: { content: item.content },
create: { id: item.id, content: item.content },
});
}
console.log("Seeding Fasilitas Pendukung...");
for (const item of fasilitasPendukungJson) {
await prisma.fasilitasPendukung.upsert({
where: { id: item.id },
update: { content: item.content },
create: { id: item.id, content: item.content },
});
}
console.log("Seeding Prosedur Pendaftaran...");
for (const item of prosedurJson) {
await prisma.prosedurPendaftaran.upsert({
where: { id: item.id },
update: { content: item.content },
create: { id: item.id, content: item.content },
});
}
console.log("Seeding Tarif dan Layanan...");
for (const item of tarifJson) {
await prisma.tarifDanLayanan.upsert({
where: { id: item.id },
update: { layanan: item.layanan, tarif: item.tarif },
create: { id: item.id, layanan: item.layanan, tarif: item.tarif },
});
console.log(` Tarif: ${item.layanan}`);
}
console.log("Seeding Dokter dan Tenaga Medis...");
for (const item of dokterJson) {
await prisma.dokterdanTenagaMedis.upsert({
where: { id: item.id },
update: {
name: item.name,
specialist: item.specialist,
jadwal: item.jadwal,
jadwalLibur: item.jadwalLibur,
jamBukaOperasional: item.jamBukaOperasional,
jamTutupOperasional: item.jamTutupOperasional,
jamBukaLibur: item.jamBukaLibur,
jamTutupLibur: item.jamTutupLibur,
},
create: {
id: item.id,
name: item.name,
specialist: item.specialist,
jadwal: item.jadwal,
jadwalLibur: item.jadwalLibur,
jamBukaOperasional: item.jamBukaOperasional,
jamTutupOperasional: item.jamTutupOperasional,
jamBukaLibur: item.jamBukaLibur,
jamTutupLibur: item.jamTutupLibur,
},
});
console.log(` Dokter: ${item.name}`);
}
console.log("Seeding Fasilitas Kesehatan...");
for (const item of faskesJson) {
await prisma.fasilitasKesehatan.upsert({
where: { id: item.id },
update: {
name: item.name,
informasiUmumId: item.informasiUmumId,
layananUnggulanId: item.layananUnggulanId,
fasilitasPendukungId: item.fasilitasPendukungId,
prosedurPendaftaranId: item.prosedurPendaftaranId,
},
create: {
id: item.id,
name: item.name,
informasiUmumId: item.informasiUmumId,
layananUnggulanId: item.layananUnggulanId,
fasilitasPendukungId: item.fasilitasPendukungId,
prosedurPendaftaranId: item.prosedurPendaftaranId,
},
});
console.log(` Fasilitas Kesehatan: ${item.name}`);
}
console.log("Fasilitas Kesehatan seed selesai");
}

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import infoWabahPenyakitJson from "../../../data/kesehatan/infowabahpenyakit/infowabahpenyakit.json";
import { loadJsonData } from "../../../load-json";
const infoWabahPenyakitJson = loadJsonData("kesehatan/infowabahpenyakit/infowabahpenyakit.json");
export async function seedInfoWabahPenyakit() {
console.log("🔄 Seeding Info Wabah Penyakit...");

View File

@@ -0,0 +1,123 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../../load-json";
const jadwalJson = loadJsonData("kesehatan/jadwal-kegiatan/jadwal-kegiatan.json");
const infoJadwalJson = loadJsonData("kesehatan/jadwal-kegiatan/informasi-jadwal.json");
const deskJadwalJson = loadJsonData("kesehatan/jadwal-kegiatan/deskripsi-jadwal.json");
const layananJadwalJson = loadJsonData("kesehatan/jadwal-kegiatan/layanan-jadwal.json");
const syaratJadwalJson = loadJsonData("kesehatan/jadwal-kegiatan/syarat-ketentuan.json");
const dokumenJadwalJson = loadJsonData("kesehatan/jadwal-kegiatan/dokumen-jadwal.json");
const daftarJadwalJson = loadJsonData("kesehatan/jadwal-kegiatan/pendaftaran-jadwal.json");
export async function seedJadwalKegiatan() {
console.log("Seeding Informasi Jadwal Kegiatan...");
for (const item of infoJadwalJson) {
await prisma.informasiJadwalKegiatan.upsert({
where: { id: item.id },
update: {
name: item.name,
tanggal: item.tanggal,
waktu: item.waktu,
lokasi: item.lokasi,
},
create: {
id: item.id,
name: item.name,
tanggal: item.tanggal,
waktu: item.waktu,
lokasi: item.lokasi,
},
});
console.log(` Informasi: ${item.name}`);
}
console.log("Seeding Deskripsi Jadwal Kegiatan...");
for (const item of deskJadwalJson) {
await prisma.deskripsiJadwalKegiatan.upsert({
where: { id: item.id },
update: { deskripsi: item.deskripsi },
create: { id: item.id, deskripsi: item.deskripsi },
});
}
console.log("Seeding Layanan Jadwal Kegiatan...");
for (const item of layananJadwalJson) {
await prisma.layananJadwalKegiatan.upsert({
where: { id: item.id },
update: { content: item.content },
create: { id: item.id, content: item.content },
});
}
console.log("Seeding Syarat & Ketentuan Jadwal...");
for (const item of syaratJadwalJson) {
await prisma.syaratKetentuanJadwalKegiatan.upsert({
where: { id: item.id },
update: { content: item.content },
create: { id: item.id, content: item.content },
});
}
console.log("Seeding Dokumen Jadwal Kegiatan...");
for (const item of dokumenJadwalJson) {
await prisma.dokumenJadwalKegiatan.upsert({
where: { id: item.id },
update: { content: item.content },
create: { id: item.id, content: item.content },
});
}
console.log("Seeding Pendaftaran Jadwal Kegiatan...");
for (const item of daftarJadwalJson) {
await prisma.pendaftaranJadwalKegiatan.upsert({
where: { id: item.id },
update: {
name: item.name,
tanggal: item.tanggal,
namaOrangtua: item.namaOrtu,
nomor: item.nomor,
alamat: item.alamat,
catatan: item.catatan,
},
create: {
id: item.id,
name: item.name,
tanggal: item.tanggal,
namaOrangtua: item.namaOrtu,
nomor: item.nomor,
alamat: item.alamat,
catatan: item.catatan,
},
});
console.log(` Pendaftaran: ${item.name}`);
}
console.log("Seeding Jadwal Kegiatan...");
for (const item of jadwalJson) {
await prisma.jadwalKegiatan.upsert({
where: { id: item.id },
update: {
content: item.content,
informasiJadwalKegiatanId: item.informasiJadwalKegiatanId,
deskripsiJadwalKegiatanId: item.deskripsiJadwalKegiatanId,
layananJadwalKegiatanId: item.layananJadwalKegiatanId,
syaratKetentuanJadwalKegiatanId: item.syaratKetentuanJadwalKegiatanId,
dokumenJadwalKegiatanId: item.dokumenJadwalKegiatanId,
pendaftaranJadwalKegiatanId: item.pendaftaranJadwalKegiatanId,
},
create: {
id: item.id,
content: item.content,
informasiJadwalKegiatanId: item.informasiJadwalKegiatanId,
deskripsiJadwalKegiatanId: item.deskripsiJadwalKegiatanId,
layananJadwalKegiatanId: item.layananJadwalKegiatanId,
syaratKetentuanJadwalKegiatanId: item.syaratKetentuanJadwalKegiatanId,
dokumenJadwalKegiatanId: item.dokumenJadwalKegiatanId,
pendaftaranJadwalKegiatanId: item.pendaftaranJadwalKegiatanId,
},
});
console.log(` Jadwal Kegiatan seeded`);
}
console.log("Jadwal Kegiatan seed selesai");
}

View File

@@ -1,6 +1,8 @@
import kontakDaruratJson from "../../../data/kesehatan/kontak-darurat/kontak-darurat.json";
import { loadJsonData } from "../../../load-json";
import prisma from "@/lib/prisma";
const kontakDaruratJson = loadJsonData("kesehatan/kontak-darurat/kontak-darurat.json");
export async function seedKontakDarurat() {
console.log("🔄 Seeding Kontak Darurat...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import penangananDaruratJson from "../../../data/kesehatan/penanganan-darurat/penganan-darurat.json";
import { loadJsonData } from "../../../load-json";
const penangananDaruratJson = loadJsonData("kesehatan/penanganan-darurat/penganan-darurat.json");
export async function seedPenangananDarurat() {
console.log("🔄 Seeding Penanganan Darurat...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import posyanduJson from "../../../data/kesehatan/posyandu/posyandu.json";
import { loadJsonData } from "../../../load-json";
const posyanduJson = loadJsonData("kesehatan/posyandu/posyandu.json");
export async function seedPosyandu() {
console.log("🔄 Seeding Posyandu...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import programKesehatanJson from "../../../data/kesehatan/program-kesehatan/program-kesehatan.json";
import { loadJsonData } from "../../../load-json";
const programKesehatanJson = loadJsonData("kesehatan/program-kesehatan/program-kesehatan.json");
export async function seedProgramKesehatan() {
for (const p of programKesehatanJson) {

View File

@@ -1,7 +1,9 @@
import prisma from "@/lib/prisma";
import puskesmasJson from "../../../data/kesehatan/puskesmas/puskesmas.json";
import kontakPuskesmasJson from "../../../data/kesehatan/puskesmas/kontak-puskesmas/kontak.json";
import jamPuskesmasJson from "../../../data/kesehatan/puskesmas/jam-puskesmas/jam.json";
import { loadJsonData } from "../../../load-json";
const puskesmasJson = loadJsonData("kesehatan/puskesmas/puskesmas.json");
const kontakPuskesmasJson = loadJsonData("kesehatan/puskesmas/kontak-puskesmas/kontak.json");
const jamPuskesmasJson = loadJsonData("kesehatan/puskesmas/jam-puskesmas/jam.json");
export async function seedPuskesmas() {
console.log("🔄 Seeding Kontak Puskesmas...");

View File

@@ -0,0 +1,32 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const grafikKepuasanJson = loadJsonData("kesehatan/grafik-kepuasan/grafik-kepuasan.json");
export async function seedGrafikKepuasan() {
console.log("Seeding Grafik Kepuasan...");
for (const item of grafikKepuasanJson) {
await prisma.grafikKepuasan.upsert({
where: { id: item.id },
update: {
nama: item.nama,
tanggal: new Date(item.tanggal),
jenisKelamin: item.jenisKelamin,
alamat: item.alamat,
penyakit: item.penyakit,
},
create: {
id: item.id,
nama: item.nama,
tanggal: new Date(item.tanggal),
jenisKelamin: item.jenisKelamin,
alamat: item.alamat,
penyakit: item.penyakit,
},
});
console.log(` Grafik Kepuasan: ${item.nama}`);
}
console.log("Grafik Kepuasan seed selesai");
}

View File

@@ -0,0 +1,70 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const kelahiranJson = loadJsonData("kesehatan/kelahiran/kelahiran.json");
const kematianJson = loadJsonData("kesehatan/kematian/kematian.json");
const dataKematianKelahiranJson = loadJsonData("kesehatan/kematian-kelahiran/data-kematian-kelahiran.json");
export async function seedKelahiranKematian() {
console.log("Seeding Kelahiran...");
for (const item of kelahiranJson) {
await prisma.kelahiran.upsert({
where: { id: item.id },
update: {
nama: item.nama,
tanggal: new Date(item.tanggal),
jenisKelamin: item.jenisKelamin,
alamat: item.alamat,
},
create: {
id: item.id,
nama: item.nama,
tanggal: new Date(item.tanggal),
jenisKelamin: item.jenisKelamin,
alamat: item.alamat,
},
});
console.log(` Kelahiran: ${item.nama}`);
}
console.log("Seeding Kematian...");
for (const item of kematianJson) {
await prisma.kematian.upsert({
where: { id: item.id },
update: {
nama: item.nama,
tanggal: new Date(item.tanggal),
jenisKelamin: item.jenisKelamin,
alamat: item.alamat,
penyebab: item.penyebab,
},
create: {
id: item.id,
nama: item.nama,
tanggal: new Date(item.tanggal),
jenisKelamin: item.jenisKelamin,
alamat: item.alamat,
penyebab: item.penyebab,
},
});
console.log(` Kematian: ${item.nama}`);
}
console.log("Seeding Data Kematian-Kelahiran...");
for (const item of dataKematianKelahiranJson) {
await prisma.dataKematian_Kelahiran.upsert({
where: { id: item.id },
update: {
kematianId: item.kematianId,
kelahiranId: item.kelahiranId,
},
create: {
id: item.id,
kematianId: item.kematianId,
kelahiranId: item.kelahiranId,
},
});
}
console.log("Kelahiran & Kematian seed selesai");
}

View File

@@ -1,6 +1,8 @@
import prisma from "@/lib/prisma";
import kategoriDesaAntiKorupsi from "../../../data/landing-page/desa-anti-korupsi/kategoriDesaAntiKorupsi.json"
import desaAntiKorupsi from "../../../data/landing-page/desa-anti-korupsi/desaantiKorpusi.json"
import { loadJsonData } from "../../../load-json";
const kategoriDesaAntiKorupsi = loadJsonData("landing-page/desa-anti-korupsi/kategoriDesaAntiKorupsi.json");
const desaAntiKorupsi = loadJsonData("landing-page/desa-anti-korupsi/desaantiKorpusi.json");
export async function seedDesaAntiKorupsi() {
for (const k of kategoriDesaAntiKorupsi) {

View File

@@ -1,6 +1,8 @@
import prisma from "@/lib/prisma";
import prestasiDesa from "../../../data/landing-page/prestasi-desa/prestasi-desa.json"
import kategoriPrestasiDesa from "../../../data/landing-page/prestasi-desa/kategori-prestasi.json"
import { loadJsonData } from "../../../load-json";
const prestasiDesa = loadJsonData("landing-page/prestasi-desa/prestasi-desa.json");
const kategoriPrestasiDesa = loadJsonData("landing-page/prestasi-desa/kategori-prestasi.json");
export async function seedPrestasiDesa() {

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import mediaSosial from "../../../data/landing-page/profile/mediaSosial.json"
import { loadJsonData } from "../../../load-json";
const mediaSosial = loadJsonData("landing-page/profile/mediaSosial.json");
export async function seedMediaSosial() {
console.log("🔄 Seeding Media Sosial...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import profilePejabatDesa from "../../../data/landing-page/profile/profile.json";
import { loadJsonData } from "../../../load-json";
const profilePejabatDesa = loadJsonData("landing-page/profile/profile.json");
export async function seedProfileLP() {
console.log("🔄 Seeding Pejabat Desa...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import programInovasi from "../../../data/landing-page/profile/programInovasi.json";
import { loadJsonData } from "../../../load-json";
const programInovasi = loadJsonData("landing-page/profile/programInovasi.json");
export async function seedProgramInovasi() {
console.log("🔄 Seeding Program Inovasi...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import sdgsDesa from "../../../data/landing-page/sdgs-desa/sdgs-desa.json";
import { loadJsonData } from "../../../load-json";
const sdgsDesa = loadJsonData("landing-page/sdgs-desa/sdgs-desa.json");
export async function seedSDGSDesa() {
console.log("🔄 Seeding SDGS Desa...");

View File

@@ -1,6 +1,8 @@
import prisma from "@/lib/prisma";
import kategoriGotongRoyong from "../../data/lingkungan/gotong-royong/kategori-gotong-royong.json";
import gotongRoyong from "../../data/lingkungan/gotong-royong/gotong-royong.json";
import { loadJsonData } from "../../load-json";
const kategoriGotongRoyong = loadJsonData("lingkungan/gotong-royong/kategori-gotong-royong.json");
const gotongRoyong = loadJsonData("lingkungan/gotong-royong/gotong-royong.json");
export async function seedDataGotongRoyong() {
console.log("🔄 Seeding Kategori Gotong Royong...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import dataLingkunganDesa from "../../data/lingkungan/data-lingkungan-desa/data-lingkungan-desa.json";
import { loadJsonData } from "../../load-json";
const dataLingkunganDesa = loadJsonData("lingkungan/data-lingkungan-desa/data-lingkungan-desa.json");
export async function seedDataLingkunganDesa() {
console.log("🔄 Seeding Data Lingkungan Desa...");

View File

@@ -1,7 +1,9 @@
import prisma from "@/lib/prisma";
import tujuanEdukasiLingkungan from "../../data/lingkungan/edukasi-lingkungan/tujuan-edukasi-lingkungan.json";
import materiEdukasiLingkungan from "../../data/lingkungan/edukasi-lingkungan/materi-edukasi-yang-diberikan.json";
import contohEdukasiLingkungan from "../../data/lingkungan/edukasi-lingkungan/contoh-kegiatan-di-desa-darmasaba.json";
import { loadJsonData } from "../../load-json";
const tujuanEdukasiLingkungan = loadJsonData("lingkungan/edukasi-lingkungan/tujuan-edukasi-lingkungan.json");
const materiEdukasiLingkungan = loadJsonData("lingkungan/edukasi-lingkungan/materi-edukasi-yang-diberikan.json");
const contohEdukasiLingkungan = loadJsonData("lingkungan/edukasi-lingkungan/contoh-kegiatan-di-desa-darmasaba.json");
export async function seedEdukasiLingkungan() {
for (const e of tujuanEdukasiLingkungan) {

View File

@@ -1,7 +1,9 @@
import prisma from "@/lib/prisma";
import filosofiTriHita from "../../data/lingkungan/konservasi-adat-bali/filosofi-tri-hita.json";
import bentukKonservasiBerdasarkanAdat from "../../data/lingkungan/konservasi-adat-bali/bentuk-konservasi.json";
import nilaiKonservasiAdat from "../../data/lingkungan/konservasi-adat-bali/nilai-konservasi-adat.json";
import { loadJsonData } from "../../load-json";
const filosofiTriHita = loadJsonData("lingkungan/konservasi-adat-bali/filosofi-tri-hita.json");
const bentukKonservasiBerdasarkanAdat = loadJsonData("lingkungan/konservasi-adat-bali/bentuk-konservasi.json");
const nilaiKonservasiAdat = loadJsonData("lingkungan/konservasi-adat-bali/nilai-konservasi-adat.json");
export async function seedKonservasiAdatBali() {
for (const f of filosofiTriHita) {

View File

@@ -1,6 +1,8 @@
import prisma from "@/lib/prisma";
import pengelolaanSampah from "../../data/lingkungan/pengelolaan-sampah/pengelolaan-sampah.json";
import keteranganBankSampah from "../../data/lingkungan/pengelolaan-sampah/keterangan-bank-sampah.json";
import { loadJsonData } from "../../load-json";
const pengelolaanSampah = loadJsonData("lingkungan/pengelolaan-sampah/pengelolaan-sampah.json");
const keteranganBankSampah = loadJsonData("lingkungan/pengelolaan-sampah/keterangan-bank-sampah.json");
export async function seedPengelolaanSampah() {
console.log("🔄 Seeding Pengelolaan Sampah...");

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import programPenghijauan from "../../data/lingkungan/program-penghijauan/program-penghijauan.json";
import { loadJsonData } from "../../load-json";
const programPenghijauan = loadJsonData("lingkungan/program-penghijauan/program-penghijauan.json");
export async function seedProgramPenghijauan() {
console.log("🔄 Seeding Program Penghijauan...");

View File

@@ -0,0 +1,58 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const beasiswaJson = loadJsonData("pendidikan/beasiswa-pendaftar/beasiswa-pendaftar.json");
export async function seedBeasiswaPendaftar() {
console.log("Seeding Beasiswa Pendaftar...");
for (const item of beasiswaJson) {
await prisma.beasiswaPendaftar.upsert({
where: { id: item.id },
update: {
namaLengkap: item.namaLengkap,
nis: item.nis,
kelas: item.kelas,
jenisKelamin: item.jenisKelamin,
alamatDomisili: item.alamatDomisili,
tempatLahir: item.tempatLahir,
tanggalLahir: new Date(item.tanggalLahir),
namaOrtu: item.namaOrtu,
nik: item.nik,
pekerjaanOrtu: item.pekerjaanOrtu,
penghasilan: item.penghasilan,
noHp: item.noHp,
kewarganegaraan: item.kewarganegaraan,
agama: item.agama,
alamatKTP: item.alamatKTP,
email: item.email,
statusPernikahan: item.statusPernikahan,
ukuranBaju: item.ukuranBaju,
},
create: {
id: item.id,
namaLengkap: item.namaLengkap,
nis: item.nis,
kelas: item.kelas,
jenisKelamin: item.jenisKelamin,
alamatDomisili: item.alamatDomisili,
tempatLahir: item.tempatLahir,
tanggalLahir: new Date(item.tanggalLahir),
namaOrtu: item.namaOrtu,
nik: item.nik,
pekerjaanOrtu: item.pekerjaanOrtu,
penghasilan: item.penghasilan,
noHp: item.noHp,
kewarganegaraan: item.kewarganegaraan,
agama: item.agama,
alamatKTP: item.alamatKTP,
email: item.email,
statusPernikahan: item.statusPernikahan,
ukuranBaju: item.ukuranBaju,
},
});
console.log(` Beasiswa: ${item.namaLengkap} (NIS: ${item.nis})`);
}
console.log("Beasiswa Pendaftar seed selesai");
}

View File

@@ -1,7 +1,9 @@
import prisma from "@/lib/prisma";
import tujuanBimbinganBelajarDesa from "../../data/pendidikan/bimbingan-belajar-desa/tujuan-bimbingan-belajar-desa.json";
import lokasiJadwalBimbinganBelajarDesa from "../../data/pendidikan/bimbingan-belajar-desa/lokasi-dan-jadwal.json";
import fasilitasBimbinganBelajarDesa from "../../data/pendidikan/bimbingan-belajar-desa/fasilitas-yang-disediakan.json";
import { loadJsonData } from "../../load-json";
const tujuanBimbinganBelajarDesa = loadJsonData("pendidikan/bimbingan-belajar-desa/tujuan-bimbingan-belajar-desa.json");
const lokasiJadwalBimbinganBelajarDesa = loadJsonData("pendidikan/bimbingan-belajar-desa/lokasi-dan-jadwal.json");
const fasilitasBimbinganBelajarDesa = loadJsonData("pendidikan/bimbingan-belajar-desa/fasilitas-yang-disediakan.json");
export async function seedBimbinganBelajar() {
for (const t of tujuanBimbinganBelajarDesa) {

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import dataPendidikan from "../../data/pendidikan/data-pendidikan/data-pendidikan.json";
import { loadJsonData } from "../../load-json";
const dataPendidikan = loadJsonData("pendidikan/data-pendidikan/data-pendidikan.json");
export async function seedDataPendidikan() {
console.log("🔄 Seeding Data pendidikan...");

View File

@@ -1,6 +1,8 @@
import prisma from "@/lib/prisma";
import dataPerpustakaan from "../../data/pendidikan/perpustakaan-digital/perpustakaan-digital.json";
import kategoriBuku from "../../data/pendidikan/perpustakaan-digital/kategori-buku.json";
import { loadJsonData } from "../../load-json";
const dataPerpustakaan = loadJsonData("pendidikan/perpustakaan-digital/perpustakaan-digital.json");
const kategoriBuku = loadJsonData("pendidikan/perpustakaan-digital/kategori-buku.json");
export async function seedDataPerpustakaan() {
console.log("🔄 Seeding Kategori Buku...");

View File

@@ -1,6 +1,8 @@
import prisma from "@/lib/prisma";
import tujuanProgram from "../../data/pendidikan/program-pendidikan-anak/tujuan-program.json";
import programUnggulan from "../../data/pendidikan/program-pendidikan-anak/program-unggulan.json";
import { loadJsonData } from "../../load-json";
const tujuanProgram = loadJsonData("pendidikan/program-pendidikan-anak/tujuan-program.json");
const programUnggulan = loadJsonData("pendidikan/program-pendidikan-anak/program-unggulan.json");
export async function seedInfoProgramPendidikan() {
for (const t of tujuanProgram) {

View File

@@ -1,8 +1,10 @@
import prisma from "@/lib/prisma";
import jenjangPendidikan from "../../data/pendidikan/info-sekolah/jenjang-pendidikan.json";
import lembagaPendidikan from "../../data/pendidikan/info-sekolah/lembaga.json";
import siswa from "../../data/pendidikan/info-sekolah/siswa.json";
import pengajar from "../../data/pendidikan/info-sekolah/pengajar.json";
import { loadJsonData } from "../../load-json";
const jenjangPendidikan = loadJsonData("pendidikan/info-sekolah/jenjang-pendidikan.json");
const lembagaPendidikan = loadJsonData("pendidikan/info-sekolah/lembaga.json");
const siswa = loadJsonData("pendidikan/info-sekolah/siswa.json");
const pengajar = loadJsonData("pendidikan/info-sekolah/pengajar.json");
export async function seedInfoSekolah() {
for (const j of jenjangPendidikan) {

View File

@@ -0,0 +1,32 @@
import prisma from "@/lib/prisma";
import { readFileSync } from "fs";
import { join } from "path";
const keunggulanJson = JSON.parse(
readFileSync(
join(process.cwd(), "prisma/data/pendidikan/keunggulan-program/keunggulan-program.json"),
"utf-8"
)
);
export async function seedKeunggulanProgram() {
console.log("Seeding Keunggulan Program...");
for (const item of keunggulanJson) {
await prisma.keunggulanProgram.upsert({
where: { id: item.id },
update: {
judul: item.judul,
deskripsi: item.deskripsi,
},
create: {
id: item.id,
judul: item.judul,
deskripsi: item.deskripsi,
},
});
console.log(` Keunggulan: ${item.judul}`);
}
console.log("Keunggulan Program seed selesai");
}

View File

@@ -1,7 +1,9 @@
import prisma from "@/lib/prisma";
import tujuanProgram from "../../data/pendidikan/pendidikan-non-formal/tujuan-program2.json";
import tempatKegiatan from "../../data/pendidikan/pendidikan-non-formal/tempat-kegiatan.json";
import jenisProgramYangDiselenggarakan from "../../data/pendidikan/pendidikan-non-formal/jenis-program-yang-diselenggarakan.json";
import { loadJsonData } from "../../load-json";
const tujuanProgram = loadJsonData("pendidikan/pendidikan-non-formal/tujuan-program2.json");
const tempatKegiatan = loadJsonData("pendidikan/pendidikan-non-formal/tempat-kegiatan.json");
const jenisProgramYangDiselenggarakan = loadJsonData("pendidikan/pendidikan-non-formal/jenis-program-yang-diselenggarakan.json");
export async function seedPendidikanNonFormal() {
for (const t of tujuanProgram) {

View File

@@ -1,8 +1,10 @@
import prisma from "@/lib/prisma";
import daftarInformasiPublik from "../../../data/ppid/daftar-informasi-publik-desa-darmasaba/daftarInformasi.json"
import jenisInformasiDiminta from "../../../data/list-jenisInfromasi.json"
import caraMemperolehInformasi from "../../../data/list-caraMemperolehInformasi.json"
import caraMemperolehSalinanInformasi from "../../../data/list-caraMemperolehSalinanInformasi.json"
import { loadJsonData } from "../../../load-json";
const daftarInformasiPublik = loadJsonData("ppid/daftar-informasi-publik-desa-darmasaba/daftarInformasi.json");
const jenisInformasiDiminta = loadJsonData("list-jenisInfromasi.json");
const caraMemperolehInformasi = loadJsonData("list-caraMemperolehInformasi.json");
const caraMemperolehSalinanInformasi = loadJsonData("list-caraMemperolehSalinanInformasi.json");
export async function seedDaftarInformasiPublikPpid() {

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import dasarHukumPPID from "../../../data/ppid/dasar-hukum-ppid/dasarhukumPPID.json"
import { loadJsonData } from "../../../load-json";
const dasarHukumPPID = loadJsonData("ppid/dasar-hukum-ppid/dasarhukumPPID.json");
export async function seedDasarHukumPpid() {
for (const v of dasarHukumPPID) {

View File

@@ -1,7 +1,9 @@
import prisma from "@/lib/prisma";
import jenisKelamin from "../../../data/ppid/ikm/jenis-kelamin/jenis-kelamin.json";
import pilihanRatingResponden from "../../../data/ppid/ikm/pilihan-rating-responden/rating-responden.json";
import umurResponden from "../../../data/ppid/ikm/umur-responden/umur-responden.json";
import { loadJsonData } from "../../../load-json";
const jenisKelamin = loadJsonData("ppid/ikm/jenis-kelamin/jenis-kelamin.json");
const pilihanRatingResponden = loadJsonData("ppid/ikm/pilihan-rating-responden/rating-responden.json");
const umurResponden = loadJsonData("ppid/ikm/umur-responden/umur-responden.json");
export async function seedIkmPpid() {
for (const j of jenisKelamin) {

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import profilPpd from "../../../data/ppid/profile-ppid/profilePPid.json"
import { loadJsonData } from "../../../load-json";
const profilPpd = loadJsonData("ppid/profile-ppid/profilePPid.json");
export async function seedProfilPpd() {
console.log("🔄 Seeding Profil PPD...");

View File

@@ -0,0 +1,161 @@
import prisma from "@/lib/prisma";
import { loadJsonData } from "../../load-json";
const strukturOrganisasiPpidJson = loadJsonData("ppid/struktur-organisasi-ppid/struktur-organisasi-ppid.json");
const formulirPermohonanKeberatanJson = loadJsonData("ppid/formulir-permohonan-keberatan/formulir-permohonan-keberatan.json");
const ikmJson = loadJsonData("ppid/ikm/indeks-kepuasan-masyarakat/indeks-kepuasan-masyarakat.json");
const grafikJenisKelaminJson = loadJsonData("ppid/ikm/grafik-jenis-kelamin/grafik-jenis-kelamin.json");
const grafikRespondenJson = loadJsonData("ppid/ikm/grafik-responden/grafik-responden.json");
const grafikUmurJson = loadJsonData("ppid/ikm/grafik-umur/grafik-umur.json");
export async function seedStrukturOrganisasiPpid() {
console.log("🔄 Seeding StrukturOrganisasiPPID...");
for (const item of strukturOrganisasiPpidJson) {
await prisma.strukturOrganisasiPPID.upsert({
where: { id: item.id },
update: {
posisiOrganisasiId: item.posisiOrganisasiId,
pegawaiId: item.pegawaiId,
hubunganOrganisasiId: item.hubunganOrganisasiId,
},
create: {
id: item.id,
posisiOrganisasiId: item.posisiOrganisasiId,
pegawaiId: item.pegawaiId,
hubunganOrganisasiId: item.hubunganOrganisasiId,
},
});
console.log(`✅ StrukturOrganisasiPPID seeded: ${item.id}`);
}
console.log("🎉 StrukturOrganisasiPPID seed selesai");
}
export async function seedFormulirPermohonanKeberatan() {
console.log("🔄 Seeding FormulirPermohonanKeberatan...");
for (const item of formulirPermohonanKeberatanJson) {
await prisma.formulirPermohonanKeberatan.upsert({
where: { id: item.id },
update: {
name: item.name,
email: item.email,
notelp: item.notelp,
alasan: item.alasan,
},
create: {
id: item.id,
name: item.name,
email: item.email,
notelp: item.notelp,
alasan: item.alasan,
},
});
console.log(`✅ FormulirPermohonanKeberatan seeded: ${item.name}`);
}
console.log("🎉 FormulirPermohonanKeberatan seed selesai");
}
export async function seedIndeksKepuasanMasyarakat() {
console.log("🔄 Seeding IndeksKepuasanMasyarakat...");
for (const item of ikmJson) {
await prisma.indeksKepuasanMasyarakat.upsert({
where: { id: item.id },
update: {
label: item.label,
kepuasan: item.kepuasan,
},
create: {
id: item.id,
label: item.label,
kepuasan: item.kepuasan,
},
});
console.log(`✅ IndeksKepuasanMasyarakat seeded: ${item.label}`);
}
console.log("🎉 IndeksKepuasanMasyarakat seed selesai");
}
export async function seedGrafikBerdasarkanJenisKelamin() {
console.log("🔄 Seeding GrafikBerdasarkanJenisKelamin...");
for (const item of grafikJenisKelaminJson) {
await prisma.grafikBerdasarkanJenisKelamin.upsert({
where: { id: item.id },
update: {
perempuan: item.perempuan,
laki: item.laki,
},
create: {
id: item.id,
perempuan: item.perempuan,
laki: item.laki,
},
});
console.log(`✅ GrafikBerdasarkanJenisKelamin seeded: ${item.id}`);
}
console.log("🎉 GrafikBerdasarkanJenisKelamin seed selesai");
}
export async function seedGrafikBerdasarkanResponden() {
console.log("🔄 Seeding GrafikBerdasarkanResponden...");
for (const item of grafikRespondenJson) {
await prisma.grafikBerdasarkanResponden.upsert({
where: { id: item.id },
update: {
sangatbaik: item.sangatbaik,
baik: item.baik,
kurangbaik: item.kurangbaik,
tidakbaik: item.tidakbaik,
},
create: {
id: item.id,
sangatbaik: item.sangatbaik,
baik: item.baik,
kurangbaik: item.kurangbaik,
tidakbaik: item.tidakbaik,
},
});
console.log(`✅ GrafikBerdasarkanResponden seeded: ${item.id}`);
}
console.log("🎉 GrafikBerdasarkanResponden seed selesai");
}
export async function seedGrafikBerdasarkanUmur() {
console.log("🔄 Seeding GrafikBerdasarkanUmur...");
for (const item of grafikUmurJson) {
await prisma.grafikBerdasarkanUmur.upsert({
where: { id: item.id },
update: {
remaja: item.remaja,
dewasa: item.dewasa,
orangtua: item.orangtua,
lansia: item.lansia,
},
create: {
id: item.id,
remaja: item.remaja,
dewasa: item.dewasa,
orangtua: item.orangtua,
lansia: item.lansia,
},
});
console.log(`✅ GrafikBerdasarkanUmur seeded: ${item.id}`);
}
console.log("🎉 GrafikBerdasarkanUmur seed selesai");
}

View File

@@ -1,6 +1,8 @@
import prisma from "@/lib/prisma";
import pegawaiPpid from "../../../data/ppid/struktur-ppid/pegawai-PPID.json"
import posisiOrganisasiPPID from "../../../data/ppid/struktur-ppid/posisi-organisasi-PPID.json"
import { loadJsonData } from "../../../load-json";
const pegawaiPpid = loadJsonData("ppid/struktur-ppid/pegawai-PPID.json");
const posisiOrganisasiPPID = loadJsonData("ppid/struktur-ppid/posisi-organisasi-PPID.json");
export async function seedPegawaiPpid() {

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import visiMisiPPID from "../../../data/ppid/visi-misi-ppid/visimisiPPID.json"
import { loadJsonData } from "../../../load-json";
const visiMisiPPID = loadJsonData("ppid/visi-misi-ppid/visimisiPPID.json");
export async function seedVisiMisiPpid() {
for (const v of visiMisiPPID) {