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:
58
prisma/_seeder_list/pendidikan/seed_beasiswa_pendaftar.ts
Normal file
58
prisma/_seeder_list/pendidikan/seed_beasiswa_pendaftar.ts
Normal 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");
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
@@ -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...");
|
||||
|
||||
@@ -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...");
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
32
prisma/_seeder_list/pendidikan/seed_keunggulan_program.ts
Normal file
32
prisma/_seeder_list/pendidikan/seed_keunggulan_program.ts
Normal 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");
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user