seed kesheatan

seed keamanan
This commit is contained in:
2026-02-02 15:05:53 +08:00
parent 8afbaabd91
commit da585dde99
25 changed files with 736 additions and 682 deletions

View File

@@ -26,6 +26,17 @@ 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";
import { seedPosyandu } from "./_seeder_list/kesehatan/posyandu/seed_posyandu";
import { seedPuskesmas } from "./_seeder_list/kesehatan/puskesmas/seed_puskesmas";
import { seedProgramKesehatan } from "./_seeder_list/kesehatan/program-kesehatan/seed_program_kesehatan";
import { seedPenangananDarurat } from "./_seeder_list/kesehatan/penanganan-darurat/seed_penanganan_darurat";
import { seedKontakDarurat } from "./_seeder_list/kesehatan/kontak-darurat/seed_kontak_darurat";
import { seedInfoWabahPenyakit } from "./_seeder_list/kesehatan/info-wabah-penyakit/seed_info_wabah_penyakit";
import { seedKeamananLingkungan } from "./_seeder_list/keamanan/seed_keamanan_lingkungan";
import { seedPolsekTerdekat } from "./_seeder_list/keamanan/seed_polsek_terdekat";
import { seedKontakDaruratKeamanan } from "./_seeder_list/keamanan/seed_kontak_darurat";
import { seedPencegahanKriminalitas } from "./_seeder_list/keamanan/seed_pencegahan_kriminalitas";
import { seedLaporanPublik } from "./_seeder_list/keamanan/seed_laporan_publik";
(async () => {
const totalFiles = await prisma.fileStorage.count();
@@ -191,634 +202,40 @@ import { seedFoto } from "./_seeder_list/desa/gallery/foto/seed_foto";
// // ====================== 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 ...");
await seedPosyandu();
// // ==================== 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 ...");
await seedPuskesmas();
// // ==================== 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 ...");
await seedProgramKesehatan();
// // ==================== 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 ...");
await seedPenangananDarurat();
// // ==================== 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 ...");
await seedKontakDarurat();
// // ==================== 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 ...");
await seedInfoWabahPenyakit();
// // ====================== 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 ...");
await seedKeamananLingkungan();
// // ==================== 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 ...");
await seedPolsekTerdekat();
// // ==================== 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");
await seedKontakDaruratKeamanan();
// // ==================== 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");
await seedPencegahanKriminalitas();
// // ==================== 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 ...");
await seedLaporanPublik();
// // ==================== 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");
await seedKeamananLingkungan();
// // ====================== MENU EKONOMI ========================
// // ==================== SUBMENU PASAR DESA ====================