Files
desa-darmasaba/prisma/seed.ts

1961 lines
54 KiB
TypeScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/no-unused-vars */
import prisma from "@/lib/prisma";
import { seedVideo } from "./_seeder_list/desa/gallery/video/seed_video";
import { seedLayanan } from "./_seeder_list/desa/layanan/seed_layanan";
import { seedPenghargaan } from "./_seeder_list/desa/penghargaan/penghargaan";
import { seedPengumuman } from "./_seeder_list/desa/pengumuman/seed_pengumuman";
import { seedPotensi } from "./_seeder_list/desa/potensi/seed_potensi";
import { seedProfileDesa } from "./_seeder_list/desa/profile-desa/seed_profile_desa";
import { seedProfilePerbekel } from "./_seeder_list/desa/profile-desa/seed_profile_perbekel";
import { seedDesaAntiKorupsi } from "./_seeder_list/landing-page/desa-anti-korupsi/seed_desa_anti_korupsi";
import { seedPrestasiDesa } from "./_seeder_list/landing-page/prestasi-desa/seed_prestasi_desa";
import { seedMediaSosial } from "./_seeder_list/landing-page/profil_landing_page/seed_media_sosial";
import { seedProfileLP } from "./_seeder_list/landing-page/profil_landing_page/seed_profile_lp";
import { seedProgramInovasi } from "./_seeder_list/landing-page/profil_landing_page/seed_program_inovasi";
import { seedSDGSDesa } from "./_seeder_list/landing-page/sdgs/seed_sdgs";
import { seedDaftarInformasiPublikPpid } from "./_seeder_list/ppid/daftar-informasi-publik-ppid/seed_daftar_informasi_publik_ppid";
import { seedDasarHukumPpid } from "./_seeder_list/ppid/dasar-hukum-ppid/seed_dasar_hukum_ppid";
import { seedIkmPpid } from "./_seeder_list/ppid/ikm/seed_ikm";
import { seedPegawaiPpid } from "./_seeder_list/ppid/struktur-ppid/seed_struktur_ppid";
import { seedVisiMisiPpid } from "./_seeder_list/ppid/visi-misi-ppid/seed_visi_misi_ppid";
import dataPendidikan from "./data/pendidikan/data-pendidikan/data-pendidikan.json";
import roles from "./data/user/roles.json";
import users from "./data/user/users.json";
import { safeSeedUnique } from "./safeseedUnique";
import seedAssets from "./seed_assets";
import { seedBerita } from "./_seeder_list/desa/berita/seed_berita";
import { seedFoto } from "./_seeder_list/desa/gallery/foto/seed_foto";
(async () => {
const totalFiles = await prisma.fileStorage.count();
const hasImageAsset = await prisma.fileStorage.findFirst({
where: { category: "image" },
select: { id: true },
});
if (totalFiles === 0 || !hasImageAsset) {
console.log("📂 fileStorage not ready, seeding assets...");
await seedAssets();
} else {
console.log(" fileStorage already initialized, skipping asset seed");
}
// // =========== FILE STORAGE ===========
console.log("🔄 Seeding roles...");
for (const r of roles) {
try {
// ✅ Destructure to remove permissions if exists
const { permissions, ...roleData } = r as any;
await safeSeedUnique(
"role",
{ name: roleData.name },
{
id: roleData.id,
name: roleData.name,
description: roleData.description,
permissions: roleData.permissions || {}, // ✅ Include permissions
isActive: roleData.isActive,
},
);
console.log(`✅ Seeded role -> ${roleData.name}`);
} catch (error: any) {
if (error.code === "P2002") {
console.warn(`⚠️ Role already exists (skipping): ${r.name}`);
} else {
console.error(`❌ Failed to seed role ${r.name}:`, error.message);
}
}
}
console.log("✅ Roles seeding completed");
// =========== USER ===========
console.log("🔄 Seeding users...");
for (const u of users) {
try {
// Verify role exists first
const roleExists = await prisma.role.findUnique({
where: { id: u.roleId.toString() },
select: { id: true }, // Only select id to minimize query
});
if (!roleExists) {
console.error(
`❌ Role with id ${u.roleId} not found for user ${u.username}`,
);
continue;
}
await safeSeedUnique(
"user",
{ nomor: u.nomor },
{
id: u.id,
username: u.username,
nomor: u.nomor,
roleId: u.roleId.toString(),
isActive: u.isActive,
sessionInvalid: false,
},
);
console.log(`✅ Seeded user -> ${u.username}`);
} catch (error: any) {
if (error.code === "P2003") {
console.error(
`❌ Foreign key constraint failed for user ${u.username}: Role ${u.roleId} does not exist`,
);
} else {
console.error(`❌ Failed to seed user ${u.username}:`, error.message);
}
}
}
console.log("✅ Users seeding completed");
// =========== LANDING PAGE ===========
// =========== SUBMENU PROFILE ===========
await seedProgramInovasi();
await seedProfileLP();
await seedMediaSosial();
// // =========== SUBMENU DESA ANTI KORUPSI ===========
await seedDesaAntiKorupsi();
// // =========== SDGSDesa ===========
await seedSDGSDesa();
// // =========== APBDes ===========
// for (const l of apbdes) {
// await prisma.aPBDes.upsert({
// where: {
// id: l.id,
// },
// update: {
// name: l.name,
// jumlah: l.jumlah,
// },
// create: {
// name: l.name,
// jumlah: l.jumlah,
// },
// });
// }
// console.log("apbdes success ...");
// // =========== PRESTASI DESA===========
await seedPrestasiDesa();
// // =========== MENU PPID ===========
// // =========== SUBMENU STRUKTUR PPID ===========
await seedPegawaiPpid();
// // =========== SUBMENU VISI MISI PPID ===========
await seedVisiMisiPpid();
// // =========== SUBMENU DASAR HUKUM PPID ===========
await seedDasarHukumPpid();
// // =========== SUBMENU DAFTAR INFORMASI PUBLIK PPID ===========
await seedDaftarInformasiPublikPpid();
// // =========== SUBMENU INDEKS KEPUASAN MASYARAKAT ===========
await seedIkmPpid();
// // =========== MENU DESA ===========
// // =========== SUBMENU PROFILE ===========
await seedProfileDesa();
await seedProfilePerbekel();
// // =========== SUBMENU POTENSI DESA ===========
await seedPotensi();
// // =========== SUBMENU BERITA ===========
await seedBerita();
// // ================== SUBMENU PENGUMUMAN ========================
await seedPengumuman();
// // ================== SUBMENU GALLERY ========================
await seedVideo();
await seedFoto();
// // =========== SUBMENU LAYANAN ===========
await seedLayanan();
// // =========== PENGHARGAAN ===========
await seedPenghargaan();
// // ====================== MENU KESEHATAN ========================
// // ==================== SUBMENU POSYANDU =========================
// console.log("🔄 Seeding Posyandu...");
// for (const p of posyandu) {
// const existing = await prisma.posyandu.findUnique({
// where: { id: p.id },
// select: { imageId: true },
// });
// let imageId = existing?.imageId; // Pertahankan existing
// // Kalau belum ada imageId, cari berdasarkan name/realName
// if (!imageId && p.imageId) {
// // ✅ Cari langsung berdasarkan ID yang ada di p.imageId
// const fileRecord = await prisma.fileStorage.findUnique({
// where: { id: p.imageId },
// select: { id: true, name: true },
// });
// if (fileRecord) {
// imageId = fileRecord.id;
// console.log(
// `✅ Found file by ID: ${fileRecord.name} (${fileRecord.id})`,
// );
// } else {
// console.warn(`⚠️ File with ID ${p.imageId} not found for ${p.name}`);
// imageId = null;
// }
// }
// await prisma.posyandu.upsert({
// where: { id: p.id },
// update: {
// name: p.name,
// nomor: p.nomor,
// deskripsi: p.deskripsi,
// jadwalPelayanan: p.jadwalPelayanan,
// imageId,
// },
// create: {
// id: p.id,
// name: p.name,
// nomor: p.nomor,
// deskripsi: p.deskripsi,
// jadwalPelayanan: p.jadwalPelayanan,
// imageId,
// },
// });
// }
// console.log("posyandu success ...");
// // ==================== SUBMENU PUSKESMAS =========================
// console.log("🔄 Seeding Kontak Puskesmas...");
// for (const k of kontakPuskesmas) {
// await prisma.kontakPuskesmas.upsert({
// where: {
// id: k.id,
// },
// update: {
// kontakPuskesmas: k.kontakPuskesmas,
// email: k.email,
// facebook: k.facebook,
// kontakUGD: k.kontakUGD,
// },
// create: {
// id: k.id,
// kontakPuskesmas: k.kontakPuskesmas,
// email: k.email,
// facebook: k.facebook,
// kontakUGD: k.kontakUGD,
// },
// });
// }
// console.log("kontak puskesmas success ...");
// console.log("🔄 Seeding Jam Puskesmas...");
// for (const k of jamPuskesmas) {
// await prisma.jamOperasional.upsert({
// where: {
// id: k.id,
// },
// update: {
// workDays: k.workDays,
// weekDays: k.weekDays,
// holiday: k.holiday,
// },
// create: {
// id: k.id,
// workDays: k.workDays,
// weekDays: k.weekDays,
// holiday: k.holiday,
// },
// });
// }
// console.log("jam puskesmas success ...");
// console.log("🔄 Seeding Puskesmas...");
// for (const p of puskesmas) {
// const existing = await prisma.puskesmas.findUnique({
// where: { id: p.id },
// select: { imageId: true },
// });
// let imageId = existing?.imageId; // Pertahankan existing
// // Kalau belum ada imageId, cari berdasarkan name/realName
// if (!imageId && p.imageId) {
// // ✅ Cari langsung berdasarkan ID yang ada di p.imageId
// const fileRecord = await prisma.fileStorage.findUnique({
// where: { id: p.imageId },
// select: { id: true, name: true },
// });
// if (fileRecord) {
// imageId = fileRecord.id;
// console.log(
// `✅ Found file by ID: ${fileRecord.name} (${fileRecord.id})`,
// );
// } else {
// console.warn(`⚠️ File with ID ${p.imageId} not found for ${p.name}`);
// imageId = null;
// }
// }
// await prisma.puskesmas.upsert({
// where: { id: p.id },
// update: {
// name: p.name,
// alamat: p.alamat,
// jamId: p.jamId,
// imageId,
// kontakId: p.kontakId,
// },
// create: {
// id: p.id,
// name: p.name,
// alamat: p.alamat,
// jamId: p.jamId,
// imageId,
// kontakId: p.kontakId,
// },
// });
// }
// console.log("puskesmas success ...");
// // ==================== SUBMENU PROGRAM KESEHATAN =========================
// console.log("🔄 Seeding Program Kesehatan...");
// for (const p of programKesehatan) {
// const existing = await prisma.programKesehatan.findUnique({
// where: { id: p.id },
// select: { imageId: true },
// });
// let imageId = existing?.imageId; // Pertahankan existing
// // Kalau belum ada imageId, cari berdasarkan name/realName
// if (!imageId && p.imageId) {
// // ✅ Cari langsung berdasarkan ID yang ada di p.imageId
// const fileRecord = await prisma.fileStorage.findUnique({
// where: { id: p.imageId },
// select: { id: true, name: true },
// });
// if (fileRecord) {
// imageId = fileRecord.id;
// console.log(
// `✅ Found file by ID: ${fileRecord.name} (${fileRecord.id})`,
// );
// } else {
// console.warn(`⚠️ File with ID ${p.imageId} not found for ${p.name}`);
// imageId = null;
// }
// }
// await prisma.programKesehatan.upsert({
// where: { id: p.id },
// update: {
// name: p.name,
// deskripsiSingkat: p.deskripsiSingkat,
// deskripsi: p.deskripsi,
// imageId,
// },
// create: {
// id: p.id,
// name: p.name,
// deskripsiSingkat: p.deskripsiSingkat,
// deskripsi: p.deskripsi,
// imageId,
// },
// });
// }
// console.log("program kesehatan success ...");
// // ==================== SUBMENU PENANGANAN DARURAT =========================
// console.log("🔄 Seeding Penanganan Darurat...");
// for (const p of penangananDarurat) {
// const existing = await prisma.penangananDarurat.findUnique({
// where: { id: p.id },
// select: { imageId: true },
// });
// let imageId = existing?.imageId; // Pertahankan existing
// // Kalau belum ada imageId, cari berdasarkan name/realName
// if (!imageId && p.imageId) {
// // ✅ Cari langsung berdasarkan ID yang ada di p.imageId
// const fileRecord = await prisma.fileStorage.findUnique({
// where: { id: p.imageId },
// select: { id: true, name: true },
// });
// if (fileRecord) {
// imageId = fileRecord.id;
// console.log(
// `✅ Found file by ID: ${fileRecord.name} (${fileRecord.id})`,
// );
// } else {
// console.warn(`⚠️ File with ID ${p.imageId} not found for ${p.name}`);
// imageId = null;
// }
// }
// await prisma.penangananDarurat.upsert({
// where: { id: p.id },
// update: {
// name: p.name,
// deskripsi: p.deskripsi,
// imageId,
// },
// create: {
// id: p.id,
// name: p.name,
// deskripsi: p.deskripsi,
// imageId,
// },
// });
// }
// console.log("penanganan darurat success ...");
// // ==================== SUBMENU KONTAK DARURAT =========================
// console.log("🔄 Seeding Kontak Darurat...");
// for (const p of kontakDarurat) {
// const existing = await prisma.kontakDarurat.findUnique({
// where: { id: p.id },
// select: { imageId: true },
// });
// let imageId = existing?.imageId; // Pertahankan existing
// // Kalau belum ada imageId, cari berdasarkan name/realName
// if (!imageId && p.imageId) {
// // ✅ Cari langsung berdasarkan ID yang ada di p.imageId
// const fileRecord = await prisma.fileStorage.findUnique({
// where: { id: p.imageId },
// select: { id: true, name: true },
// });
// if (fileRecord) {
// imageId = fileRecord.id;
// console.log(
// `✅ Found file by ID: ${fileRecord.name} (${fileRecord.id})`,
// );
// } else {
// console.warn(`⚠️ File with ID ${p.imageId} not found for ${p.name}`);
// imageId = null;
// }
// }
// await prisma.kontakDarurat.upsert({
// where: { id: p.id },
// update: {
// name: p.name,
// deskripsi: p.deskripsi,
// whatsapp: p.whatsapp,
// imageId,
// },
// create: {
// id: p.id,
// name: p.name,
// deskripsi: p.deskripsi,
// whatsapp: p.whatsapp,
// imageId,
// },
// });
// }
// console.log("kontak darurat success ...");
// // ==================== SUBMENU INFO WABAH PENYAKIT =========================
// console.log("🔄 Seeding Info Wabah Penyakit...");
// for (const p of infoWabahPenyakit) {
// const existing = await prisma.infoWabahPenyakit.findUnique({
// where: { id: p.id },
// select: { imageId: true },
// });
// let imageId = existing?.imageId; // Pertahankan existing
// // Kalau belum ada imageId, cari berdasarkan name/realName
// if (!imageId && p.imageId) {
// // ✅ Cari langsung berdasarkan ID yang ada di p.imageId
// const fileRecord = await prisma.fileStorage.findUnique({
// where: { id: p.imageId },
// select: { id: true, name: true },
// });
// if (fileRecord) {
// imageId = fileRecord.id;
// console.log(
// `✅ Found file by ID: ${fileRecord.name} (${fileRecord.id})`,
// );
// } else {
// console.warn(`⚠️ File with ID ${p.imageId} not found for ${p.name}`);
// imageId = null;
// }
// }
// await prisma.infoWabahPenyakit.upsert({
// where: { id: p.id },
// update: {
// name: p.name,
// deskripsiSingkat: p.deskripsiSingkat,
// deskripsiLengkap: p.deskripsiLengkap,
// imageId,
// },
// create: {
// id: p.id,
// name: p.name,
// deskripsiSingkat: p.deskripsiSingkat,
// deskripsiLengkap: p.deskripsiLengkap,
// imageId,
// },
// });
// }
// console.log("info wabah penyakit success ...");
// // ====================== MENU KEAMANAN ========================
// // ==================== SUBMENU KEAMANAN LINGKUNGAN ============
// console.log("🔄 Seeding Keamanan Lingkungan...");
// for (const k of keamananLingkungan) {
// const existing = await prisma.keamananLingkungan.findUnique({
// where: { id: k.id },
// select: { imageId: true },
// });
// let imageId = existing?.imageId; // Pertahankan existing
// // Kalau belum ada imageId, cari berdasarkan name/realName
// if (!imageId && k.imageId) {
// // ✅ Cari langsung berdasarkan ID yang ada di p.imageId
// const fileRecord = await prisma.fileStorage.findUnique({
// where: { id: k.imageId },
// select: { id: true, name: true },
// });
// if (fileRecord) {
// imageId = fileRecord.id;
// console.log(
// `✅ Found file by ID: ${fileRecord.name} (${fileRecord.id})`,
// );
// } else {
// console.warn(`⚠️ File with ID ${k.imageId} not found for ${k.name}`);
// imageId = null;
// }
// }
// await prisma.keamananLingkungan.upsert({
// where: { id: k.id },
// update: {
// name: k.name,
// deskripsi: k.deskripsi,
// imageId,
// },
// create: {
// id: k.id,
// name: k.name,
// deskripsi: k.deskripsi,
// imageId,
// },
// });
// }
// console.log("info wabah penyakit success ...");
// // ==================== SUBMENU POLSEK TERDEKAT ================
// console.log("🔄 Seeding Layanan Polsek...");
// for (const k of layananPolsek) {
// await prisma.layananPolsek.upsert({
// where: {
// id: k.id,
// },
// update: {
// nama: k.nama,
// },
// create: {
// id: k.id,
// nama: k.nama,
// },
// });
// }
// console.log("layanan polsek success ...");
// console.log("🔄 Seeding Polsek Terdekat...");
// for (const k of polsekTerdekat) {
// await prisma.polsekTerdekat.upsert({
// where: {
// id: k.id,
// },
// update: {
// nama: k.nama,
// jarakKeDesa: k.jarakKeDesa,
// alamat: k.alamat,
// nomorTelepon: k.nomorTelepon,
// jamOperasional: k.jamOperasional,
// embedMapUrl: k.embedMapUrl,
// namaTempatMaps: k.namaTempatMaps,
// alamatMaps: k.alamatMaps,
// linkPetunjukArah: k.linkPetunjukArah,
// layananPolsekId: k.layananPolsekId,
// },
// create: {
// id: k.id,
// nama: k.nama,
// jarakKeDesa: k.jarakKeDesa,
// alamat: k.alamat,
// nomorTelepon: k.nomorTelepon,
// jamOperasional: k.jamOperasional,
// embedMapUrl: k.embedMapUrl,
// namaTempatMaps: k.namaTempatMaps,
// alamatMaps: k.alamatMaps,
// linkPetunjukArah: k.linkPetunjukArah,
// layananPolsekId: k.layananPolsekId,
// },
// });
// }
// console.log("polsek terdekat success ...");
// console.log("🔄 Seeding Layanan To Polsek...");
// for (const k of layananToPolsek) {
// await prisma.layananToPolsek.upsert({
// where: {
// id: k.id,
// },
// update: {
// layananId: k.layananId,
// polsekTerdekatId: k.polsekTerdekatId,
// },
// create: {
// id: k.id,
// layananId: k.layananId,
// polsekTerdekatId: k.polsekTerdekatId,
// },
// });
// }
// console.log("layanan to polsek success ...");
// // ==================== SUBMENU KONTAK DARURAT =================
// console.log("🔄 Seeding Kontak Item...");
// for (const e of kontakItem) {
// await prisma.kontakItem.upsert({
// where: {
// id: e.id,
// },
// update: {
// nama: e.nama,
// icon: e.icon,
// nomorTelepon: e.nomorTelepon,
// },
// create: {
// id: e.id, // ✅ WAJIB
// nama: e.nama,
// icon: e.icon,
// nomorTelepon: e.nomorTelepon,
// },
// });
// }
// console.log("✅ Kontak Item seeded successfully");
// console.log("🔄 Seeding Kontak Darurat Keamanan...");
// for (const d of kontakDaruratKeamanan) {
// await prisma.kontakDaruratKeamanan.upsert({
// where: {
// id: d.id,
// },
// update: {
// nama: d.nama,
// icon: d.icon,
// kategoriId: d.kategoriId,
// },
// create: {
// id: d.id,
// nama: d.nama,
// icon: d.icon,
// kategoriId: d.kategoriId,
// },
// });
// }
// console.log("✅ Kontak Darurat Keamanan seeded successfully");
// console.log("🔄 Seeding Kontak Darurat To Item...");
// for (const f of kontakDaruratToItem) {
// // ✅ Validasi foreign keys
// const kontakDaruratExists = await prisma.kontakDaruratKeamanan.findUnique({
// where: { id: f.kontakDaruratId },
// });
// const kontakItemExists = await prisma.kontakItem.findUnique({
// where: { id: f.kontakItemId },
// });
// if (!kontakDaruratExists) {
// console.warn(
// `⚠️ KontakDarurat ${f.kontakDaruratId} not found, skipping...`,
// );
// continue;
// }
// if (!kontakItemExists) {
// console.warn(`⚠️ KontakItem ${f.kontakItemId} not found, skipping...`);
// continue;
// }
// await prisma.kontakDaruratToItem.upsert({
// where: { id: f.id },
// update: {
// kontakDaruratId: f.kontakDaruratId,
// kontakItemId: f.kontakItemId,
// },
// create: {
// id: f.id,
// kontakDaruratId: f.kontakDaruratId,
// kontakItemId: f.kontakItemId,
// },
// });
// }
// console.log("✅ Kontak Darurat To Item seeded successfully");
// // ==================== SUBMENU PENCEGAHAN KRIMINALITAS ========
// console.log("🔄 Seeding Pencegahan Kriminalitas...");
// for (const d of pencegahanKriminalitas) {
// await prisma.pencegahanKriminalitas.upsert({
// where: {
// id: d.id,
// },
// update: {
// judul: d.judul,
// deskripsi: d.deskripsi,
// deskripsiSingkat: d.deskripsiSingkat,
// linkVideo: d.linkVideo,
// },
// create: {
// id: d.id,
// judul: d.judul,
// deskripsi: d.deskripsi,
// deskripsiSingkat: d.deskripsiSingkat,
// linkVideo: d.linkVideo,
// },
// });
// }
// console.log("✅ Pencegahan Kriminalitas seeded successfully");
// // ==================== SUBMENU LAPORAN PUBLIK =================
// console.log("🔄 Seeding Laporan Publik...");
// for (const l of laporanPublik) {
// await prisma.laporanPublik.upsert({
// where: {
// id: l.id,
// },
// update: {
// judul: l.judul,
// lokasi: l.lokasi,
// tanggalWaktu: l.tanggalWaktu,
// kronologi: l.kronologi,
// },
// create: {
// id: l.id,
// judul: l.judul,
// lokasi: l.lokasi,
// tanggalWaktu: l.tanggalWaktu,
// kronologi: l.kronologi,
// },
// });
// }
// console.log("laporan publik success ...");
// console.log("🔄 Seeding Penanganan Laporan...");
// for (const l of penangananLaporan) {
// await prisma.penangananLaporanPublik.upsert({
// where: {
// id: l.id,
// },
// update: {
// deskripsi: l.deskripsi,
// laporanId: l.laporanId,
// },
// create: {
// id: l.id,
// deskripsi: l.deskripsi,
// laporanId: l.laporanId,
// },
// });
// }
// console.log("penanganan laporan success ...");
// // ==================== SUBMENU TIPS KEAMANAN ==================
// console.log("🔄 Seeding Tips Keamanan...");
// for (const t of tipsKeamanan) {
// await prisma.menuTipsKeamanan.upsert({
// where: {
// id: t.id,
// },
// update: {
// judul: t.judul,
// deskripsi: t.deskripsi,
// imageId: t.imageId,
// },
// create: {
// judul: t.judul,
// deskripsi: t.deskripsi,
// imageId: t.imageId,
// },
// });
// }
// console.log("✅ Tips Keamanan seeded successfully");
// // ====================== 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,
// },
// });
// }
// // ==================== 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");
// // ==================== 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 ...");
// // ==================== SUBMENU PENDAPATAN ASLI DESA ==========
// // ==================== 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 ...");
// // ==================== 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 ...");
// // ==================== 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");
// // ==================== 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");
// // ==================== 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");
// // ==================== 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");
// // ====================== 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");
// // ==================== 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");
// // ==================== 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");
// // ==================== 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");
// // ==================== 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");
// // ==================== 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");
// // ====================== MENU LINGKUNGAN ==========================
// // ==================== SUBMENU PENGELOLAAN SAMPAH ==========
// console.log("🔄 Seeding Pengelolaan Sampah...");
// for (const p of pengelolaanSampah) {
// await prisma.pengelolaanSampah.upsert({
// where: {
// id: p.id,
// },
// update: {
// name: p.name,
// icon: p.icon,
// },
// create: {
// id: p.id,
// name: p.name,
// icon: p.icon,
// },
// });
// }
// console.log("✅ Pengelolaan Sampah seeded successfully");
// console.log("🔄 Seeding Keterangan Bank Sampah...");
// for (const p of keteranganBankSampah) {
// await prisma.keteranganBankSampahTerdekat.upsert({
// where: {
// id: p.id,
// },
// update: {
// name: p.name,
// alamat: p.alamat,
// namaTempatMaps: p.namaTempatMaps,
// linkPetunjukArah: p.linkPetunjukArah,
// lat: p.lat,
// lng: p.lng,
// },
// create: {
// id: p.id,
// name: p.name,
// alamat: p.alamat,
// namaTempatMaps: p.namaTempatMaps,
// linkPetunjukArah: p.linkPetunjukArah,
// lat: p.lat,
// lng: p.lng,
// },
// });
// }
// console.log("✅ Keterangan Bank Sampah seeded successfully");
// // ==================== SUBMENU PROGRAM PENGHIJAUAN ==========
// console.log("🔄 Seeding Program Penghijauan...");
// for (const p of programPenghijauan) {
// await prisma.programPenghijauan.upsert({
// where: {
// id: p.id,
// },
// update: {
// name: p.name,
// judul: p.judul,
// deskripsi: p.deskripsi,
// icon: p.icon,
// },
// create: {
// id: p.id,
// name: p.name,
// judul: p.judul,
// deskripsi: p.deskripsi,
// icon: p.icon,
// },
// });
// }
// console.log("✅ Program Penghijauan seeded successfully");
// // ==================== SUBMENU DATA LINGKUNGAN DESA ==========
// console.log("🔄 Seeding Data Lingkungan Desa...");
// for (const p of dataLingkunganDesa) {
// await prisma.dataLingkunganDesa.upsert({
// where: {
// id: p.id,
// },
// update: {
// name: p.name,
// jumlah: p.jumlah,
// deskripsi: p.deskripsi,
// icon: p.icon,
// },
// create: {
// id: p.id,
// name: p.name,
// jumlah: p.jumlah,
// deskripsi: p.deskripsi,
// icon: p.icon,
// },
// });
// }
// console.log("✅ Data Lingkungan Desa seeded successfully");
// // =========== SUBMENU GOTONG ROYONG ===========
// console.log("🔄 Seeding Kategori Gotong Royong...");
// for (const k of kategoriGotongRoyong) {
// await prisma.kategoriKegiatan.upsert({
// where: {
// id: k.id,
// },
// update: {
// nama: k.nama,
// },
// create: {
// id: k.id,
// nama: k.nama,
// },
// });
// }
// console.log("✅ Kategori Gotong Royong seeded successfully");
// console.log("🔄 Seeding Gotong Royong...");
// for (const k of gotongRoyong) {
// await prisma.kegiatanDesa.upsert({
// where: {
// id: k.id,
// },
// update: {
// judul: k.judul,
// deskripsiSingkat: k.deskripsiSingkat,
// deskripsiLengkap: k.deskripsiLengkap,
// tanggal: k.tanggal,
// lokasi: k.lokasi,
// partisipan: k.partisipan,
// imageId: k.imageId,
// kategoriKegiatanId: k.kategoriKegiatanId,
// },
// create: {
// id: k.id,
// judul: k.judul,
// deskripsiSingkat: k.deskripsiSingkat,
// deskripsiLengkap: k.deskripsiLengkap,
// tanggal: k.tanggal,
// lokasi: k.lokasi,
// partisipan: k.partisipan,
// imageId: k.imageId,
// kategoriKegiatanId: k.kategoriKegiatanId,
// },
// });
// }
// console.log("✅ Kategori Gotong Royong seeded successfully");
// // =========== SUBMENU EDUKASI LINGKUNGAN ===========
// for (const e of tujuanEdukasiLingkungan) {
// await prisma.tujuanEdukasiLingkungan.upsert({
// where: {
// id: e.id,
// },
// update: {
// judul: e.judul,
// deskripsi: e.deskripsi,
// },
// create: {
// id: e.id,
// judul: e.judul,
// deskripsi: e.deskripsi,
// },
// });
// }
// console.log("tujuan edukasi lingkungan success ...");
// for (const m of materiEdukasiLingkungan) {
// await prisma.materiEdukasiLingkungan.upsert({
// where: {
// id: m.id,
// },
// update: {
// judul: m.judul,
// deskripsi: m.deskripsi,
// },
// create: {
// id: m.id,
// judul: m.judul,
// deskripsi: m.deskripsi,
// },
// });
// }
// console.log("materi edukasi lingkungan success ...");
// for (const c of contohEdukasiLingkungan) {
// await prisma.contohEdukasiLingkungan.upsert({
// where: {
// id: c.id,
// },
// update: {
// judul: c.judul,
// deskripsi: c.deskripsi,
// },
// create: {
// id: c.id,
// judul: c.judul,
// deskripsi: c.deskripsi,
// },
// });
// }
// console.log("contoh edukasi lingkungan success ...");
// // =========== SUBMENU KONSERVASI ADAT BALI ===========
// for (const f of filosofiTriHita) {
// await prisma.filosofiTriHita.upsert({
// where: {
// id: f.id,
// },
// update: {
// judul: f.judul,
// deskripsi: f.deskripsi,
// },
// create: {
// id: f.id,
// judul: f.judul,
// deskripsi: f.deskripsi,
// },
// });
// }
// console.log("filosofi tri hita success ...");
// for (const b of bentukKonservasiBerdasarkanAdat) {
// await prisma.bentukKonservasiBerdasarkanAdat.upsert({
// where: {
// id: b.id,
// },
// update: {
// judul: b.judul,
// deskripsi: b.deskripsi,
// },
// create: {
// id: b.id,
// judul: b.judul,
// deskripsi: b.deskripsi,
// },
// });
// }
// console.log("bentuk konservasi berdasarkan adat success ...");
// for (const n of nilaiKonservasiAdat) {
// await prisma.nilaiKonservasiAdat.upsert({
// where: {
// id: n.id,
// },
// update: {
// judul: n.judul,
// deskripsi: n.deskripsi,
// },
// create: {
// id: n.id,
// judul: n.judul,
// deskripsi: n.deskripsi,
// },
// });
// }
// console.log("nilai konservasi adat success ...");
// // ====================== MENU PENDIDIKAN ==========================
// // =========== SUBMENU INFO SEKOLAH =====================
// for (const j of jenjangPendidikan) {
// await prisma.jenjangPendidikan.upsert({
// where: {
// id: j.id,
// },
// update: {
// nama: j.nama,
// },
// create: {
// id: j.id,
// nama: j.nama,
// },
// });
// }
// console.log("✅ Jenjang Pendidikan seeded successfully");
// for (const j of lembagaPendidikan) {
// await prisma.lembaga.upsert({
// where: {
// id: j.id,
// },
// update: {
// nama: j.nama,
// jenjangId: j.jenjangId,
// },
// create: {
// id: j.id,
// nama: j.nama,
// jenjangId: j.jenjangId,
// },
// });
// }
// console.log("✅ Lembaga Pendidikan seeded successfully");
// for (const j of siswa) {
// await prisma.siswa.upsert({
// where: {
// id: j.id,
// },
// update: {
// nama: j.nama,
// lembagaId: j.lembagaId,
// },
// create: {
// id: j.id,
// nama: j.nama,
// lembagaId: j.lembagaId,
// },
// });
// }
// console.log("✅ siswa seeded successfully");
// for (const j of pengajar) {
// await prisma.pengajar.upsert({
// where: {
// id: j.id,
// },
// update: {
// nama: j.nama,
// lembagaId: j.lembagaId,
// },
// create: {
// id: j.id,
// nama: j.nama,
// lembagaId: j.lembagaId,
// },
// });
// }
// console.log("✅ pengajar seeded successfully");
// // =========== SUBMENU PROGRAM PENDIDIKAN ANAK =====================
// for (const t of tujuanProgram) {
// await prisma.tujuanProgram.upsert({
// where: { id: t.id },
// update: {
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// create: {
// id: t.id,
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// });
// }
// console.log("✅ tujuan program seeded (editable later via UI)");
// for (const t of programUnggulan) {
// await prisma.programUnggulan.upsert({
// where: { id: t.id },
// update: {
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// create: {
// id: t.id,
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// });
// }
// console.log("✅ program unggulan seeded (editable later via UI)");
// // =========== SUBMENU BIMBINGAN BELAJAR DESA =====================
// for (const t of tujuanBimbinganBelajarDesa) {
// await prisma.tujuanBimbinganBelajarDesa.upsert({
// where: { id: t.id },
// update: {
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// create: {
// id: t.id,
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// });
// }
// console.log(
// "✅ tujuan bimbingan belajar desa seeded (editable later via UI)",
// );
// for (const t of lokasiJadwalBimbinganBelajarDesa) {
// await prisma.lokasiJadwalBimbinganBelajarDesa.upsert({
// where: { id: t.id },
// update: {
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// create: {
// id: t.id,
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// });
// }
// console.log(
// "✅ lokasi jadwal bimbingan belajar desa seeded (editable later via UI)",
// );
// for (const t of fasilitasBimbinganBelajarDesa) {
// await prisma.fasilitasBimbinganBelajarDesa.upsert({
// where: { id: t.id },
// update: {
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// create: {
// id: t.id,
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// });
// }
// console.log(
// "✅ fasilitas bimbingan belajar desa seeded (editable later via UI)",
// );
// // =========== SUBMENU PENDIDIKAN NON FORMAL =====================
// for (const t of tujuanProgram2) {
// await prisma.tujuanPendidikanNonFormal.upsert({
// where: { id: t.id },
// update: {
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// create: {
// id: t.id,
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// });
// }
// console.log(
// "✅ fasilitas bimbingan belajar desa seeded (editable later via UI)",
// );
// for (const t of tempatKegiatan) {
// await prisma.tempatKegiatan.upsert({
// where: { id: t.id },
// update: {
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// create: {
// id: t.id,
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// });
// }
// console.log(
// "✅ fasilitas bimbingan belajar desa seeded (editable later via UI)",
// );
// for (const t of jenisProgramYangDiselenggarakan) {
// await prisma.jenisProgramYangDiselenggarakan.upsert({
// where: { id: t.id },
// update: {
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// create: {
// id: t.id,
// judul: t.judul,
// deskripsi: t.deskripsi,
// },
// });
// }
// console.log(
// "✅ fasilitas bimbingan belajar desa seeded (editable later via UI)",
// );
// // =========== SUBMENU PERPUSTAKAAN DIGITAL =====================
// console.log("🔄 Seeding Kategori Buku...");
// for (const k of kategoriBuku) {
// await prisma.kategoriBuku.upsert({
// where: {
// id: k.id,
// },
// update: {
// name: k.name,
// },
// create: {
// id: k.id,
// name: k.name,
// },
// });
// }
// console.log("✅ Kategori Buku seeded successfully");
// console.log("🔄 Seeding Data perpustakaan...");
// for (const k of dataPerpustakaan) {
// await prisma.dataPerpustakaan.upsert({
// where: {
// id: k.id,
// },
// update: {
// judul: k.judul,
// deskripsi: k.deskripsi,
// kategoriId: k.kategoriId,
// imageId: k.imageId,
// },
// create: {
// id: k.id,
// judul: k.judul,
// deskripsi: k.deskripsi,
// kategoriId: k.kategoriId,
// imageId: k.imageId,
// },
// });
// }
// console.log("✅ Data perpustakaan seeded successfully");
// =========== SUBMENU DATA PENDIDIKAN =====================
console.log("🔄 Seeding Data pendidikan...");
for (const k of dataPendidikan) {
await prisma.dataPendidikan.upsert({
where: {
id: k.id,
},
update: {
name: k.name,
jumlah: k.jumlah,
},
create: {
id: k.id,
name: k.name,
jumlah: k.jumlah,
},
});
}
console.log("✅ Data pendidikan seeded successfully");
})()
.then(() => prisma.$disconnect())
.catch((e) => {
console.error(e);
prisma.$disconnect();
});
process.on("exit", () => {
prisma.$disconnect();
});
process.on("SIGINT", () => {
prisma.$disconnect();
process.exit(0);
});