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:
@@ -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() {
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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...");
|
||||
|
||||
161
prisma/_seeder_list/ppid/seed_ppid_extra.ts
Normal file
161
prisma/_seeder_list/ppid/seed_ppid_extra.ts
Normal 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");
|
||||
}
|
||||
@@ -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() {
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user