From e30b27f7a43e1c9575ad7b4a2969c8542ea41a1d Mon Sep 17 00:00:00 2001 From: nico Date: Tue, 25 Nov 2025 17:30:41 +0800 Subject: [PATCH] Fix Search --- .../api/[[...slugs]]/_lib/search/findMany.ts | 1290 +++++++++++++---- 1 file changed, 991 insertions(+), 299 deletions(-) diff --git a/src/app/api/[[...slugs]]/_lib/search/findMany.ts b/src/app/api/[[...slugs]]/_lib/search/findMany.ts index 2a782fd6..5e6eab4e 100644 --- a/src/app/api/[[...slugs]]/_lib/search/findMany.ts +++ b/src/app/api/[[...slugs]]/_lib/search/findMany.ts @@ -19,7 +19,9 @@ export default async function searchFindMany(context: Context) { //========================================= PROFILE ========================================= // if (type === "pejabatdesa") { const data = await prisma.pejabatDesa.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + name: { contains: query, mode: "insensitive" }, + }, skip, take: limitNum, }); @@ -31,7 +33,12 @@ export default async function searchFindMany(context: Context) { if (type === "programinovasi") { const data = await prisma.programInovasi.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { description: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -51,7 +58,13 @@ export default async function searchFindMany(context: Context) { if (type === "desaantikorupsi") { const data = await prisma.desaAntiKorupsi.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { kategori: { name: { contains: query, mode: "insensitive" } } }, + ], + }, skip, take: limitNum, }); @@ -71,7 +84,23 @@ export default async function searchFindMany(context: Context) { //========================================= APBDes ========================================= // if (type === "apbdes") { const data = await prisma.aPBDes.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, + skip, + take: limitNum, + }); + return { data, nextPage: data.length < limitNum ? null : pageNum + 1 }; + } + + if (type === "apbdesitem") { + const data = await prisma.aPBDesItem.findMany({ + where: { + uraian: { contains: query, mode: "insensitive" }, + }, skip, take: limitNum, }); @@ -81,7 +110,13 @@ export default async function searchFindMany(context: Context) { //========================================= PRESTASI DESA ========================================= // if (type === "prestasidesa") { const data = await prisma.prestasiDesa.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { kategori: { name: { contains: query, mode: "insensitive" } } }, + ], + }, skip, take: limitNum, }); @@ -103,7 +138,18 @@ export default async function searchFindMany(context: Context) { if (type === "strukturppid") { const data = await prisma.strukturPPID.findMany({ where: { - PegawaiPPID: { namaLengkap: { contains: query, mode: "insensitive" } }, + OR: [ + { + PegawaiPPID: { + namaLengkap: { contains: query, mode: "insensitive" }, + }, + }, + { + PosisiOrganisasiPPID: { + nama: { contains: query, mode: "insensitive" }, + }, + }, + ], }, include: { PosisiOrganisasiPPID: true, @@ -119,8 +165,10 @@ export default async function searchFindMany(context: Context) { if (type === "visimisippid") { const data = await prisma.visiMisiPPID.findMany({ where: { - visi: { contains: query, mode: "insensitive" }, - misi: { contains: query, mode: "insensitive" }, + OR: [ + { visi: { contains: query, mode: "insensitive" } }, + { misi: { contains: query, mode: "insensitive" } }, + ], }, skip, take: limitNum, @@ -133,7 +181,12 @@ export default async function searchFindMany(context: Context) { // ========================================= DASAR HUKUM PPID ========================================= // if (type === "dasarhukumppid") { const data = await prisma.dasarHukumPPID.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -143,7 +196,15 @@ export default async function searchFindMany(context: Context) { // ========================================= PROFILE PPID ========================================= // if (type === "profileppid") { const data = await prisma.profilePPID.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { biodata: { contains: query, mode: "insensitive" } }, + { riwayat: { contains: query, mode: "insensitive" } }, + { pengalaman: { contains: query, mode: "insensitive" } }, + { unggulan: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -153,7 +214,12 @@ export default async function searchFindMany(context: Context) { // ========================================= DAFTAR INFORMASI PUBLIK ========================================= // if (type === "daftarinformasipublik") { const data = await prisma.daftarInformasiPublik.findMany({ - where: { jenisInformasi: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { jenisInformasi: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -163,7 +229,14 @@ export default async function searchFindMany(context: Context) { //=========================================PERMOHONAN INFORMASI PUBLIK========================= // if (type === "permohonaninformasipublik") { const data = await prisma.permohonanInformasiPublik.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { nik: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { email: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -173,7 +246,13 @@ export default async function searchFindMany(context: Context) { //=========================================PERMOHONAN INFORMASI KEBERATAN PUBLIK========================= // if (type === "permohonaninformasikeberatanpublik") { const data = await prisma.formulirPermohonanKeberatan.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { email: { contains: query, mode: "insensitive" } }, + { alasan: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -194,7 +273,12 @@ export default async function searchFindMany(context: Context) { // ========================================= PROFILE DESA ========================================= // if (type === "sejarahdesa") { const data = await prisma.sejarahDesa.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -203,7 +287,12 @@ export default async function searchFindMany(context: Context) { if (type === "visimisidesa") { const data = await prisma.visiMisiDesa.findMany({ - where: { visi: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { visi: { contains: query, mode: "insensitive" } }, + { misi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -212,7 +301,12 @@ export default async function searchFindMany(context: Context) { if (type === "lambangdesa") { const data = await prisma.lambangDesa.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -221,7 +315,12 @@ export default async function searchFindMany(context: Context) { if (type === "maskotdesa") { const data = await prisma.maskotDesa.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -230,7 +329,14 @@ export default async function searchFindMany(context: Context) { if (type === "profilperbekel") { const data = await prisma.profilPerbekel.findMany({ - where: { biodata: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { biodata: { contains: query, mode: "insensitive" } }, + { pengalaman: { contains: query, mode: "insensitive" } }, + { pengalamanOrganisasi: { contains: query, mode: "insensitive" } }, + { programUnggulan: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -239,7 +345,13 @@ export default async function searchFindMany(context: Context) { if (type === "perbekeldarmasaba") { const data = await prisma.perbekelDariMasaKeMasa.findMany({ - where: { nama: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { nama: { contains: query, mode: "insensitive" } }, + { periode: { contains: query, mode: "insensitive" } }, + { daerah: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -249,7 +361,16 @@ export default async function searchFindMany(context: Context) { // ========================================= BERITA ========================================= // if (type === "berita") { const data = await prisma.berita.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + { + kategoriBerita: { name: { contains: query, mode: "insensitive" } }, + }, + ], + }, skip, take: limitNum, }); @@ -268,7 +389,14 @@ export default async function searchFindMany(context: Context) { // ========================================= POTENSI DESA ========================================= // if (type === "potensi") { const data = await prisma.potensiDesa.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + { kategori: { nama: { contains: query, mode: "insensitive" } } }, + ], + }, skip, take: limitNum, }); @@ -278,7 +406,18 @@ export default async function searchFindMany(context: Context) { // ========================================= PENGUMUMAN ========================================= // if (type === "pengumuman") { const data = await prisma.pengumuman.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + { + CategoryPengumuman: { + name: { contains: query, mode: "insensitive" }, + }, + }, + ], + }, skip, take: limitNum, }); @@ -288,7 +427,12 @@ export default async function searchFindMany(context: Context) { // ========================================= GALLERY ========================================= // if (type === "galleryFoto") { const data = await prisma.galleryFoto.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -297,7 +441,12 @@ export default async function searchFindMany(context: Context) { if (type === "galleryVideo") { const data = await prisma.galleryVideo.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -307,7 +456,12 @@ export default async function searchFindMany(context: Context) { // ========================================= LAYANAN DESA ========================================= // if (type === "pelayananSuratKeterangan") { const data = await prisma.pelayananSuratKeterangan.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -316,7 +470,12 @@ export default async function searchFindMany(context: Context) { if (type === "pelayananPerizinanBerusaha") { const data = await prisma.pelayananPerizinanBerusaha.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -325,7 +484,12 @@ export default async function searchFindMany(context: Context) { if (type === "pelayananTelunjukSaktiDesa") { const data = await prisma.pelayananTelunjukSaktiDesa.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -334,7 +498,12 @@ export default async function searchFindMany(context: Context) { if (type === "pelayananPendudukNonPermanen") { const data = await prisma.pelayananPendudukNonPermanen.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -344,7 +513,13 @@ export default async function searchFindMany(context: Context) { // ========================================= PENGHARGAAN ========================================= // if (type === "penghargaan") { const data = await prisma.penghargaan.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { juara: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -355,7 +530,14 @@ export default async function searchFindMany(context: Context) { // ========================================= POSYANDU ========================================= // if (type === "posyandu") { const data = await prisma.posyandu.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { nomor: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { jadwalPelayanan: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -367,10 +549,20 @@ export default async function searchFindMany(context: Context) { const data = await prisma.fasilitasKesehatan.findMany({ where: { name: { contains: query, mode: "insensitive" }, - informasiumum: { fasilitas: { contains: query, mode: "insensitive" } }, + informasiumum: { + OR: [ + { fasilitas: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { jamOperasional: { contains: query, mode: "insensitive" } }, + ], + }, layananunggulan: { content: { contains: query, mode: "insensitive" } }, dokterdantenagamedis: { - name: { contains: query, mode: "insensitive" }, + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { specialist: { contains: query, mode: "insensitive" } }, + { jadwal: { contains: query, mode: "insensitive" } }, + ], }, fasilitaspendukung: { content: { contains: query, mode: "insensitive" }, @@ -378,7 +570,12 @@ export default async function searchFindMany(context: Context) { prosedurpendaftaran: { content: { contains: query, mode: "insensitive" }, }, - tarifdanlayanan: { layanan: { contains: query, mode: "insensitive" } }, + tarifdanlayanan: { + OR: [ + { layanan: { contains: query, mode: "insensitive" } }, + { tarif: { contains: query, mode: "insensitive" } }, + ], + }, }, skip, take: limitNum, @@ -392,7 +589,12 @@ export default async function searchFindMany(context: Context) { where: { content: { contains: query, mode: "insensitive" }, informasijadwalkegiatan: { - name: { contains: query, mode: "insensitive" }, + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { tanggal: { contains: query, mode: "insensitive" } }, + { waktu: { contains: query, mode: "insensitive" } }, + { lokasi: { contains: query, mode: "insensitive" } }, + ], }, deskripsijadwalkegiatan: { deskripsi: { contains: query, mode: "insensitive" }, @@ -407,7 +609,14 @@ export default async function searchFindMany(context: Context) { content: { contains: query, mode: "insensitive" }, }, pendaftaranjadwalkegiatan: { - name: { contains: query, mode: "insensitive" }, + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { tanggal: { contains: query, mode: "insensitive" } }, + { namaOrangtua: { contains: query, mode: "insensitive" } }, + { nomor: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { catatan: { contains: query, mode: "insensitive" } }, + ], }, }, skip, @@ -426,16 +635,29 @@ export default async function searchFindMany(context: Context) { content: { contains: query, mode: "insensitive" }, }, symptom: { - title: { contains: query, mode: "insensitive" }, + OR: [ + { title: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + ], }, prevention: { - title: { contains: query, mode: "insensitive" }, + OR: [ + { title: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + ], }, firstaid: { - title: { contains: query, mode: "insensitive" }, + OR: [ + { title: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + ], }, mythvsfact: { - title: { contains: query, mode: "insensitive" }, + OR: [ + { title: { contains: query, mode: "insensitive" } }, + { mitos: { contains: query, mode: "insensitive" } }, + { fakta: { contains: query, mode: "insensitive" } }, + ], }, doctorsign: { content: { contains: query, mode: "insensitive" }, @@ -450,7 +672,33 @@ export default async function searchFindMany(context: Context) { // ========================================= PUSKESMAS ========================================= // if (type === "puskesmas") { const data = await prisma.puskesmas.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { + jam: { + OR: [ + { workDays: { contains: query, mode: "insensitive" } }, + { weekDays: { contains: query, mode: "insensitive" } }, + { holiday: { contains: query, mode: "insensitive" } }, + ], + }, + }, + { + kontak: { + OR: [ + { + kontakPuskesmas: { contains: query, mode: "insensitive" }, + email: { contains: query, mode: "insensitive" }, + facebook: { contains: query, mode: "insensitive" }, + kontakUGD: { contains: query, mode: "insensitive" }, + }, + ], + }, + }, + ], + }, skip, take: limitNum, }); @@ -460,7 +708,13 @@ export default async function searchFindMany(context: Context) { // ========================================= PROGRAM KESEHATAN ========================================= // if (type === "programKesehatan") { const data = await prisma.programKesehatan.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsiSingkat: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -470,7 +724,12 @@ export default async function searchFindMany(context: Context) { // ========================================= PENANGANAN DARURAT ========================================= // if (type === "penangananDarurat") { const data = await prisma.penangananDarurat.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -480,7 +739,12 @@ export default async function searchFindMany(context: Context) { // ========================================= KONTAK DARURAT ========================================= // if (type === "kontakDarurat") { const data = await prisma.kontakDarurat.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -490,7 +754,13 @@ export default async function searchFindMany(context: Context) { // ========================================= INFO WABAH PENYAKIT ========================================= // if (type === "infoWabahPenyakit") { const data = await prisma.infoWabahPenyakit.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsiSingkat: { contains: query, mode: "insensitive" } }, + { deskripsiLengkap: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -501,7 +771,12 @@ export default async function searchFindMany(context: Context) { // ========================================= KEAMANAN LINGKUNGAN ========================================= // if (type === "keamananLingkungan") { const data = await prisma.keamananLingkungan.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -511,7 +786,13 @@ export default async function searchFindMany(context: Context) { // ========================================= POLSEK TERDEKAT ========================================= // if (type === "polsekTerdekat") { const data = await prisma.polsekTerdekat.findMany({ - where: { nama: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { nama: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { nomorTelepon: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -521,7 +802,15 @@ export default async function searchFindMany(context: Context) { // ========================================= KONTAK DARURAT ========================================= // if (type === "kontakDaruratKeamanan") { const data = await prisma.kontakDaruratKeamanan.findMany({ - where: { nama: { contains: query, mode: "insensitive" } }, + where: { + nama: { contains: query, mode: "insensitive" }, + kategori: { + OR: [ + { nama: { contains: query, mode: "insensitive" } }, + { nomorTelepon: { contains: query, mode: "insensitive" } }, + ], + }, + }, skip, take: limitNum, }); @@ -531,7 +820,13 @@ export default async function searchFindMany(context: Context) { // ========================================= PENCEGAHAN KRIMINALITAS ========================================= // if (type === "pencegahanKriminalitas") { const data = await prisma.pencegahanKriminalitas.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { deskripsiSingkat: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -541,7 +836,12 @@ export default async function searchFindMany(context: Context) { // ========================================= LAPORAN PUBLIK ========================================= // if (type === "laporanPublik") { const data = await prisma.laporanPublik.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { lokasi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -551,7 +851,12 @@ export default async function searchFindMany(context: Context) { // ========================================= TIPS KEAMANAN ========================================= // if (type === "tipsKeamanan") { const data = await prisma.menuTipsKeamanan.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, skip, take: limitNum, }); @@ -562,7 +867,16 @@ export default async function searchFindMany(context: Context) { // ========================================= PASAR DESA ========================================= // if (type === "pasarDesa") { const data = await prisma.pasarDesa.findMany({ - where: { nama: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { nama: { contains: query, mode: "insensitive" } }, + { alamatUsaha: { contains: query, mode: "insensitive" } }, + { kontak: { contains: query, mode: "insensitive" } }, + { + kategoriProduk: { nama: { contains: query, mode: "insensitive" } }, + }, + ], + }, skip, take: limitNum, }); @@ -572,7 +886,7 @@ export default async function searchFindMany(context: Context) { // ========================================= LOWONGAN KERJA LOKAL ========================================= // if (type === "lowonganKerjaLokal") { const data = await prisma.lowonganPekerjaan.findMany({ - where: { + where: { OR: [ { posisi: { contains: query, mode: "insensitive" } }, { namaPerusahaan: { contains: query, mode: "insensitive" } }, @@ -592,11 +906,25 @@ export default async function searchFindMany(context: Context) { // ========================================= STRUKTUR ORGANISASI ========================================= // if (type === "strukturOrganisasi") { const data = await prisma.strukturBumDes.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { PosisiOrganisasiBumDes: { nama: { contains: query, mode: "insensitive" } } }, - { PegawaiBumDes: { namaLengkap: { contains: query, mode: "insensitive" } } }, + { + PosisiOrganisasiBumDes: { + nama: { contains: query, mode: "insensitive" }, + }, + }, + { + PegawaiBumDes: { + OR: [ + { namaLengkap: { contains: query, mode: "insensitive" } }, + { email: { contains: query, mode: "insensitive" } }, + { telepon: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { gelarAkademik: { contains: query, mode: "insensitive" } }, + ], + }, + }, ], }, skip, @@ -604,11 +932,11 @@ export default async function searchFindMany(context: Context) { }); return { data, nextPage: data.length < limitNum ? null : pageNum + 1 }; } - + // ========================================= JUMLAH PENDUDUK USIA KERJA YANG MENGANGGUR ========================================= // if (type === "jumlahPendudukUsiaKerjaYangMenganggurUsia") { const data = await prisma.grafikMenganggurBerdasarkanUsia.findMany({ - where: { + where: { OR: [ { usia18_25: { contains: query, mode: "insensitive" } }, { usia26_35: { contains: query, mode: "insensitive" } }, @@ -625,7 +953,7 @@ export default async function searchFindMany(context: Context) { // ========================================= JUMLAH PENDUDUK USIA KERJA YANG MENGANGGUR ========================================= // if (type === "jumlahPendudukUsiaKerjaYangMenganggurPendidikan") { const data = await prisma.grafikMenganggurBerdasarkanPendidikan.findMany({ - where: { + where: { OR: [ { SD: { contains: query, mode: "insensitive" } }, { SMP: { contains: query, mode: "insensitive" } }, @@ -646,13 +974,13 @@ export default async function searchFindMany(context: Context) { where: { OR: [ // Convert year to string for partial matching - ...(isNaN(Number(query)) ? [] : [ - { year: { equals: Number(query) } } - ]), + ...(isNaN(Number(query)) + ? [] + : [{ year: { equals: Number(query) } }]), // Convert totalPoorPopulation to string for partial matching - ...(isNaN(Number(query)) ? [] : [ - { totalPoorPopulation: { equals: Number(query) } } - ]) + ...(isNaN(Number(query)) + ? [] + : [{ totalPoorPopulation: { equals: Number(query) } }]), ].filter(Boolean), // Remove any empty arrays from the spread }, skip, @@ -663,7 +991,7 @@ export default async function searchFindMany(context: Context) { // ========================================= PROGRAM KEMISKINAN ========================================= // if (type === "programKemiskinan") { const data = await prisma.programKemiskinan.findMany({ - where: { + where: { OR: [ { nama: { contains: query, mode: "insensitive" } }, { deskripsi: { contains: query, mode: "insensitive" } }, @@ -675,14 +1003,13 @@ export default async function searchFindMany(context: Context) { return { data, nextPage: data.length < limitNum ? null : pageNum + 1 }; } - // ========================================= SEKTOR UNGGULAN DESA ========================================= // if (type === "sektorUnggulanDesa") { const data = await prisma.sektorUnggulanDesa.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { description: { contains: query, mode: "insensitive" } } + { description: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -702,14 +1029,14 @@ export default async function searchFindMany(context: Context) { } // ========================================= MENU INOVASI ========================================= // -// ========================================= DESA DIGITAL / SMART VILLAGE ========================================= // + // ========================================= DESA DIGITAL / SMART VILLAGE ========================================= // if (type === "desaDigital") { const data = await prisma.desaDigital.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -722,11 +1049,11 @@ export default async function searchFindMany(context: Context) { if (type === "programKreatif") { const data = await prisma.programKreatif.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, { slug: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -739,12 +1066,12 @@ export default async function searchFindMany(context: Context) { if (type === "kolaborasiInovasi") { const data = await prisma.kolaborasiInovasi.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, { slug: { contains: query, mode: "insensitive" } }, { deskripsi: { contains: query, mode: "insensitive" } }, - { kolaborator: { contains: query, mode: "insensitive" } } + { kolaborator: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -755,10 +1082,8 @@ export default async function searchFindMany(context: Context) { if (type === "mitraKolaborasi") { const data = await prisma.mitraKolaborasi.findMany({ - where: { - OR: [ - { name: { contains: query, mode: "insensitive" } } - ], + where: { + OR: [{ name: { contains: query, mode: "insensitive" } }], }, skip, take: limitNum, @@ -770,10 +1095,10 @@ export default async function searchFindMany(context: Context) { if (type === "infoTekno") { const data = await prisma.infoTekno.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -783,14 +1108,12 @@ export default async function searchFindMany(context: Context) { } // ========================================= LINGKUNGAN ========================================= // -// ========================================= PENGELOLAAN SAMPAH ========================================= // + // ========================================= PENGELOLAAN SAMPAH ========================================= // if (type === "pengelolaanSampah") { const data = await prisma.pengelolaanSampah.findMany({ - where: { - OR: [ - { name: { contains: query, mode: "insensitive" } } - ], + where: { + OR: [{ name: { contains: query, mode: "insensitive" } }], }, skip, take: limitNum, @@ -800,12 +1123,12 @@ export default async function searchFindMany(context: Context) { if (type === "keteranganBankSampahTerdekat") { const data = await prisma.keteranganBankSampahTerdekat.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, { alamat: { contains: query, mode: "insensitive" } }, { namaTempatMaps: { contains: query, mode: "insensitive" } }, - { linkPetunjukArah: { contains: query, mode: "insensitive" } } + { linkPetunjukArah: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -818,11 +1141,11 @@ export default async function searchFindMany(context: Context) { if (type === "programPenghijauan") { const data = await prisma.programPenghijauan.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -835,10 +1158,10 @@ export default async function searchFindMany(context: Context) { if (type === "dataLingkunganDesa") { const data = await prisma.dataLingkunganDesa.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -851,11 +1174,17 @@ export default async function searchFindMany(context: Context) { if (type === "gotongRoyong") { const data = await prisma.kegiatanDesa.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, { deskripsiSingkat: { contains: query, mode: "insensitive" } }, - { deskripsiLengkap: { contains: query, mode: "insensitive" } } + { deskripsiLengkap: { contains: query, mode: "insensitive" } }, + { lokasi: { contains: query, mode: "insensitive" } }, + { + kategoriKegiatan: { + nama: { contains: query, mode: "insensitive" }, + }, + }, ], }, skip, @@ -868,10 +1197,10 @@ export default async function searchFindMany(context: Context) { if (type === "tujuanEdukasiLingkungan") { const data = await prisma.tujuanEdukasiLingkungan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -882,10 +1211,10 @@ export default async function searchFindMany(context: Context) { if (type === "materiEdukasiLingkungan") { const data = await prisma.materiEdukasiLingkungan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -896,10 +1225,10 @@ export default async function searchFindMany(context: Context) { if (type === "contohEdukasiLingkungan") { const data = await prisma.contohEdukasiLingkungan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -912,10 +1241,10 @@ export default async function searchFindMany(context: Context) { if (type === "filosofiTriHita") { const data = await prisma.filosofiTriHita.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -926,10 +1255,10 @@ export default async function searchFindMany(context: Context) { if (type === "bentukKonservasiBerdasarkanAdat") { const data = await prisma.bentukKonservasiBerdasarkanAdat.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -940,10 +1269,10 @@ export default async function searchFindMany(context: Context) { if (type === "nilaiKonservasiAdat") { const data = await prisma.nilaiKonservasiAdat.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -953,14 +1282,12 @@ export default async function searchFindMany(context: Context) { } // ========================================= MENU PENDIDIKAN ========================================= // -// ========================================= INFO SEKOLAH & PAUD ========================================= // + // ========================================= INFO SEKOLAH & PAUD ========================================= // if (type === "jenjangPendidikan") { const data = await prisma.jenjangPendidikan.findMany({ - where: { - OR: [ - { nama: { contains: query, mode: "insensitive" } } - ], + where: { + nama: { contains: query, mode: "insensitive" }, }, skip, take: limitNum, @@ -970,10 +1297,8 @@ export default async function searchFindMany(context: Context) { if (type === "lembaga") { const data = await prisma.lembaga.findMany({ - where: { - OR: [ - { nama: { contains: query, mode: "insensitive" } } - ], + where: { + OR: [{ nama: { contains: query, mode: "insensitive" } }], }, skip, take: limitNum, @@ -983,10 +1308,8 @@ export default async function searchFindMany(context: Context) { if (type === "siswa") { const data = await prisma.siswa.findMany({ - where: { - OR: [ - { nama: { contains: query, mode: "insensitive" } } - ], + where: { + OR: [{ nama: { contains: query, mode: "insensitive" } }], }, skip, take: limitNum, @@ -996,10 +1319,8 @@ export default async function searchFindMany(context: Context) { if (type === "pengajar") { const data = await prisma.pengajar.findMany({ - where: { - OR: [ - { nama: { contains: query, mode: "insensitive" } } - ], + where: { + OR: [{ nama: { contains: query, mode: "insensitive" } }], }, skip, take: limitNum, @@ -1010,10 +1331,10 @@ export default async function searchFindMany(context: Context) { // ========================================= BEASISWA DESA ========================================= // if (type === "keunggulanProgram") { const data = await prisma.keunggulanProgram.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -1025,10 +1346,10 @@ export default async function searchFindMany(context: Context) { // ========================================= PROGRAM PENDIDIKAN ANAK ========================================= // if (type === "tujuanProgram") { const data = await prisma.tujuanProgram.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -1039,10 +1360,10 @@ export default async function searchFindMany(context: Context) { if (type === "programUnggulan") { const data = await prisma.programUnggulan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -1053,10 +1374,10 @@ export default async function searchFindMany(context: Context) { if (type === "lokasiJadwalBimbinganBelajarDesa") { const data = await prisma.lokasiJadwalBimbinganBelajarDesa.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -1067,10 +1388,10 @@ export default async function searchFindMany(context: Context) { if (type === "fasilitasBimbinganBelajarDesa") { const data = await prisma.fasilitasBimbinganBelajarDesa.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -1082,10 +1403,10 @@ export default async function searchFindMany(context: Context) { // ========================================= PENDIDIKAN NON FORMAL ========================================= // if (type === "tujuanPendidikanNonFormal") { const data = await prisma.tujuanPendidikanNonFormal.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -1096,10 +1417,10 @@ export default async function searchFindMany(context: Context) { if (type === "tempatKegiatan") { const data = await prisma.tempatKegiatan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -1110,10 +1431,10 @@ export default async function searchFindMany(context: Context) { if (type === "jenisProgramYangDiselenggarakan") { const data = await prisma.jenisProgramYangDiselenggarakan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -1125,10 +1446,15 @@ export default async function searchFindMany(context: Context) { // ========================================= PERPUSTAKAAN ========================================= // if (type === "dataPerpustakaan") { const data = await prisma.dataPerpustakaan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, + { + kategori: { + OR: [{ name: { contains: query, mode: "insensitive" } }], + }, + }, ], }, skip, @@ -1140,10 +1466,10 @@ export default async function searchFindMany(context: Context) { // ========================================= DATA PENDIDIKAN ========================================= // if (type === "dataPendidikan") { const data = await prisma.dataPendidikan.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { jumlah: { contains: query, mode: "insensitive" } } + { jumlah: { contains: query, mode: "insensitive" } }, ], }, skip, @@ -1240,15 +1566,19 @@ export default async function searchFindMany(context: Context) { tempatKegiatan, jenisProgramYangDiselenggarakan, dataPerpustakaan, - dataPendidikan - + dataPendidikan, ] = await Promise.all([ prisma.pejabatDesa.findMany({ where: { name: { contains: query, mode: "insensitive" } }, take: limitNum, }), prisma.programInovasi.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { description: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.mediaSosial.findMany({ @@ -1256,7 +1586,13 @@ export default async function searchFindMany(context: Context) { take: limitNum, }), prisma.desaAntiKorupsi.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { kategori: { name: { contains: query, mode: "insensitive" } } }, + ], + }, take: limitNum, }), prisma.sdgsDesa.findMany({ @@ -1264,11 +1600,22 @@ export default async function searchFindMany(context: Context) { take: limitNum, }), prisma.aPBDes.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.prestasiDesa.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { kategori: { name: { contains: query, mode: "insensitive" } } }, + ], + }, take: limitNum, }), prisma.responden.findMany({ @@ -1278,9 +1625,23 @@ export default async function searchFindMany(context: Context) { // ✅ FIXED prisma.strukturPPID.findMany({ where: { - PegawaiPPID: { namaLengkap: { contains: query, mode: "insensitive" } }, + OR: [ + { + PegawaiPPID: { + namaLengkap: { contains: query, mode: "insensitive" }, + }, + }, + { + PosisiOrganisasiPPID: { + nama: { contains: query, mode: "insensitive" }, + }, + }, + ], + }, + include: { + PosisiOrganisasiPPID: true, + PegawaiPPID: true, }, - include: { PegawaiPPID: true }, take: limitNum, }), prisma.visiMisiPPID.findMany({ @@ -1293,23 +1654,54 @@ export default async function searchFindMany(context: Context) { take: limitNum, }), prisma.dasarHukumPPID.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.profilePPID.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { biodata: { contains: query, mode: "insensitive" } }, + { riwayat: { contains: query, mode: "insensitive" } }, + { pengalaman: { contains: query, mode: "insensitive" } }, + { unggulan: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.daftarInformasiPublik.findMany({ - where: { jenisInformasi: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { jenisInformasi: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.permohonanInformasiPublik.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { nik: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { email: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.formulirPermohonanKeberatan.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { email: { contains: query, mode: "insensitive" } }, + { alasan: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.indeksKepuasanMasyarakat.findMany({ @@ -1317,7 +1709,12 @@ export default async function searchFindMany(context: Context) { take: limitNum, }), prisma.sejarahDesa.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.visiMisiDesa.findMany({ @@ -1330,23 +1727,55 @@ export default async function searchFindMany(context: Context) { take: limitNum, }), prisma.lambangDesa.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.maskotDesa.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.profilPerbekel.findMany({ - where: { biodata: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { biodata: { contains: query, mode: "insensitive" } }, + { pengalaman: { contains: query, mode: "insensitive" } }, + { pengalamanOrganisasi: { contains: query, mode: "insensitive" } }, + { programUnggulan: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.perbekelDariMasaKeMasa.findMany({ - where: { nama: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { nama: { contains: query, mode: "insensitive" } }, + { periode: { contains: query, mode: "insensitive" } }, + { daerah: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.berita.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + { + kategoriBerita: { name: { contains: query, mode: "insensitive" } }, + }, + ], + }, take: limitNum, }), prisma.kategoriBerita.findMany({ @@ -1354,52 +1783,123 @@ export default async function searchFindMany(context: Context) { take: limitNum, }), prisma.potensiDesa.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + { kategori: { nama: { contains: query, mode: "insensitive" } } }, + ], + }, take: limitNum, }), prisma.pengumuman.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + { + CategoryPengumuman: { + name: { contains: query, mode: "insensitive" }, + }, + }, + ], + }, take: limitNum, }), prisma.galleryFoto.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.galleryVideo.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.pelayananSuratKeterangan.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.pelayananPerizinanBerusaha.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.pelayananTelunjukSaktiDesa.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.pelayananPendudukNonPermanen.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.penghargaan.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { juara: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.posyandu.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { nomor: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { jadwalPelayanan: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.fasilitasKesehatan.findMany({ where: { name: { contains: query, mode: "insensitive" }, - informasiumum: { fasilitas: { contains: query, mode: "insensitive" } }, + informasiumum: { + OR: [ + { fasilitas: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { jamOperasional: { contains: query, mode: "insensitive" } }, + ], + }, layananunggulan: { content: { contains: query, mode: "insensitive" } }, dokterdantenagamedis: { - name: { contains: query, mode: "insensitive" }, + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { specialist: { contains: query, mode: "insensitive" } }, + { jadwal: { contains: query, mode: "insensitive" } }, + ], }, fasilitaspendukung: { content: { contains: query, mode: "insensitive" }, @@ -1407,7 +1907,12 @@ export default async function searchFindMany(context: Context) { prosedurpendaftaran: { content: { contains: query, mode: "insensitive" }, }, - tarifdanlayanan: { layanan: { contains: query, mode: "insensitive" } }, + tarifdanlayanan: { + OR: [ + { layanan: { contains: query, mode: "insensitive" } }, + { tarif: { contains: query, mode: "insensitive" } }, + ], + }, }, take: limitNum, }), @@ -1415,7 +1920,12 @@ export default async function searchFindMany(context: Context) { where: { content: { contains: query, mode: "insensitive" }, informasijadwalkegiatan: { - name: { contains: query, mode: "insensitive" }, + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { tanggal: { contains: query, mode: "insensitive" } }, + { waktu: { contains: query, mode: "insensitive" } }, + { lokasi: { contains: query, mode: "insensitive" } }, + ], }, deskripsijadwalkegiatan: { deskripsi: { contains: query, mode: "insensitive" }, @@ -1430,7 +1940,14 @@ export default async function searchFindMany(context: Context) { content: { contains: query, mode: "insensitive" }, }, pendaftaranjadwalkegiatan: { - name: { contains: query, mode: "insensitive" }, + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { tanggal: { contains: query, mode: "insensitive" } }, + { namaOrangtua: { contains: query, mode: "insensitive" } }, + { nomor: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { catatan: { contains: query, mode: "insensitive" } }, + ], }, }, take: limitNum, @@ -1443,16 +1960,29 @@ export default async function searchFindMany(context: Context) { content: { contains: query, mode: "insensitive" }, }, symptom: { - title: { contains: query, mode: "insensitive" }, + OR: [ + { title: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + ], }, prevention: { - title: { contains: query, mode: "insensitive" }, + OR: [ + { title: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + ], }, firstaid: { - title: { contains: query, mode: "insensitive" }, + OR: [ + { title: { contains: query, mode: "insensitive" } }, + { content: { contains: query, mode: "insensitive" } }, + ], }, mythvsfact: { - title: { contains: query, mode: "insensitive" }, + OR: [ + { title: { contains: query, mode: "insensitive" } }, + { mitos: { contains: query, mode: "insensitive" } }, + { fakta: { contains: query, mode: "insensitive" } }, + ], }, doctorsign: { content: { contains: query, mode: "insensitive" }, @@ -1461,69 +1991,186 @@ export default async function searchFindMany(context: Context) { take: limitNum, }), prisma.puskesmas.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { + jam: { + OR: [ + { workDays: { contains: query, mode: "insensitive" } }, + { weekDays: { contains: query, mode: "insensitive" } }, + { holiday: { contains: query, mode: "insensitive" } }, + ], + }, + }, + { + kontak: { + OR: [ + { + kontakPuskesmas: { contains: query, mode: "insensitive" }, + email: { contains: query, mode: "insensitive" }, + facebook: { contains: query, mode: "insensitive" }, + kontakUGD: { contains: query, mode: "insensitive" }, + }, + ], + }, + }, + ], + }, take: limitNum, }), prisma.programKesehatan.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsiSingkat: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.penangananDarurat.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.kontakDarurat.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.infoWabahPenyakit.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsiSingkat: { contains: query, mode: "insensitive" } }, + { deskripsiLengkap: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.keamananLingkungan.findMany({ - where: { name: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { name: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.polsekTerdekat.findMany({ - where: { nama: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { nama: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { nomorTelepon: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.kontakDaruratKeamanan.findMany({ - where: { nama: { contains: query, mode: "insensitive" } }, + where: { + nama: { contains: query, mode: "insensitive" }, + kategori: { + OR: [ + { nama: { contains: query, mode: "insensitive" } }, + { nomorTelepon: { contains: query, mode: "insensitive" } }, + ], + }, + }, take: limitNum, }), prisma.pencegahanKriminalitas.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { deskripsiSingkat: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.laporanPublik.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { lokasi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.menuTipsKeamanan.findMany({ - where: { judul: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { judul: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.pasarDesa.findMany({ - where: { nama: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { nama: { contains: query, mode: "insensitive" } }, + { alamatUsaha: { contains: query, mode: "insensitive" } }, + { kontak: { contains: query, mode: "insensitive" } }, + { + kategoriProduk: { nama: { contains: query, mode: "insensitive" } }, + }, + ], + }, take: limitNum, }), prisma.lowonganPekerjaan.findMany({ - where: { posisi: { contains: query, mode: "insensitive" } }, + where: { + OR: [ + { posisi: { contains: query, mode: "insensitive" } }, + { namaPerusahaan: { contains: query, mode: "insensitive" } }, + { lokasi: { contains: query, mode: "insensitive" } }, + { tipePekerjaan: { contains: query, mode: "insensitive" } }, + { gaji: { contains: query, mode: "insensitive" } }, + { deskripsi: { contains: query, mode: "insensitive" } }, + { kualifikasi: { contains: query, mode: "insensitive" } }, + { notelp: { contains: query, mode: "insensitive" } }, + ], + }, take: limitNum, }), prisma.strukturBumDes.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { PosisiOrganisasiBumDes: { nama: { contains: query, mode: "insensitive" } } }, - { PegawaiBumDes: { namaLengkap: { contains: query, mode: "insensitive" } } }, + { + PosisiOrganisasiBumDes: { + nama: { contains: query, mode: "insensitive" }, + }, + }, + { + PegawaiBumDes: { + OR: [ + { namaLengkap: { contains: query, mode: "insensitive" } }, + { email: { contains: query, mode: "insensitive" } }, + { telepon: { contains: query, mode: "insensitive" } }, + { alamat: { contains: query, mode: "insensitive" } }, + { gelarAkademik: { contains: query, mode: "insensitive" } }, + ], + }, + }, ], }, take: limitNum, }), prisma.grafikMenganggurBerdasarkanUsia.findMany({ - where: { + where: { OR: [ { usia18_25: { contains: query, mode: "insensitive" } }, { usia26_35: { contains: query, mode: "insensitive" } }, @@ -1534,7 +2181,7 @@ export default async function searchFindMany(context: Context) { take: limitNum, }), prisma.grafikMenganggurBerdasarkanPendidikan.findMany({ - where: { + where: { OR: [ { SD: { contains: query, mode: "insensitive" } }, { SMP: { contains: query, mode: "insensitive" } }, @@ -1546,18 +2193,20 @@ export default async function searchFindMany(context: Context) { take: limitNum, }), prisma.grafikJumlahPendudukMiskin.findMany({ - where: { + where: { OR: [ - ...(isNaN(Number(query)) ? [] : [ - { year: { equals: Number(query) } }, - { totalPoorPopulation: { equals: Number(query) } } - ]) + ...(isNaN(Number(query)) + ? [] + : [ + { year: { equals: Number(query) } }, + { totalPoorPopulation: { equals: Number(query) } }, + ]), ].filter(Boolean), }, take: limitNum, }), prisma.programKemiskinan.findMany({ - where: { + where: { OR: [ { nama: { contains: query, mode: "insensitive" } }, { deskripsi: { contains: query, mode: "insensitive" } }, @@ -1566,291 +2215,290 @@ export default async function searchFindMany(context: Context) { take: limitNum, }), prisma.sektorUnggulanDesa.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { description: { contains: query, mode: "insensitive" } } + { description: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.dataDemografiPekerjaan.findMany({ - where: { - pekerjaan: { contains: query, mode: "insensitive" } + where: { + pekerjaan: { contains: query, mode: "insensitive" }, }, take: limitNum, }), prisma.desaDigital.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.programKreatif.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, { slug: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.kolaborasiInovasi.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, { slug: { contains: query, mode: "insensitive" } }, { deskripsi: { contains: query, mode: "insensitive" } }, - { kolaborator: { contains: query, mode: "insensitive" } } + { kolaborator: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.mitraKolaborasi.findMany({ - where: { - OR: [ - { name: { contains: query, mode: "insensitive" } } - ], + where: { + OR: [{ name: { contains: query, mode: "insensitive" } }], }, take: limitNum, }), prisma.infoTekno.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.pengelolaanSampah.findMany({ - where: { - OR: [ - { name: { contains: query, mode: "insensitive" } } - ], + where: { + OR: [{ name: { contains: query, mode: "insensitive" } }], }, take: limitNum, }), prisma.keteranganBankSampahTerdekat.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, { alamat: { contains: query, mode: "insensitive" } }, { namaTempatMaps: { contains: query, mode: "insensitive" } }, - { linkPetunjukArah: { contains: query, mode: "insensitive" } } + { linkPetunjukArah: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.programPenghijauan.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, - }), + }), prisma.dataLingkunganDesa.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.kegiatanDesa.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, { deskripsiSingkat: { contains: query, mode: "insensitive" } }, - { deskripsiLengkap: { contains: query, mode: "insensitive" } } + { deskripsiLengkap: { contains: query, mode: "insensitive" } }, + { lokasi: { contains: query, mode: "insensitive" } }, + { + kategoriKegiatan: { + nama: { contains: query, mode: "insensitive" }, + }, + }, ], }, take: limitNum, }), prisma.tujuanEdukasiLingkungan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.materiEdukasiLingkungan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.contohEdukasiLingkungan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.filosofiTriHita.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.bentukKonservasiBerdasarkanAdat.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.nilaiKonservasiAdat.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.jenjangPendidikan.findMany({ - where: { - OR: [ - { nama: { contains: query, mode: "insensitive" } } - ], + where: { + OR: [{ nama: { contains: query, mode: "insensitive" } }], }, take: limitNum, }), prisma.lembaga.findMany({ - where: { - OR: [ - { nama: { contains: query, mode: "insensitive" } } - ], + where: { + OR: [{ nama: { contains: query, mode: "insensitive" } }], }, take: limitNum, }), prisma.siswa.findMany({ - where: { - OR: [ - { nama: { contains: query, mode: "insensitive" } } - ], + where: { + OR: [{ nama: { contains: query, mode: "insensitive" } }], }, take: limitNum, }), prisma.pengajar.findMany({ - where: { - OR: [ - { nama: { contains: query, mode: "insensitive" } } - ], + where: { + OR: [{ nama: { contains: query, mode: "insensitive" } }], }, take: limitNum, }), prisma.keunggulanProgram.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.tujuanProgram.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.programUnggulan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.lokasiJadwalBimbinganBelajarDesa.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.fasilitasBimbinganBelajarDesa.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.tujuanPendidikanNonFormal.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.tempatKegiatan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.jenisProgramYangDiselenggarakan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, }), prisma.dataPerpustakaan.findMany({ - where: { + where: { OR: [ { judul: { contains: query, mode: "insensitive" } }, - { deskripsi: { contains: query, mode: "insensitive" } } + { deskripsi: { contains: query, mode: "insensitive" } }, + { + kategori: { + OR: [{ name: { contains: query, mode: "insensitive" } }], + }, + }, ], }, take: limitNum, }), prisma.dataPendidikan.findMany({ - where: { + where: { OR: [ { name: { contains: query, mode: "insensitive" } }, - { jumlah: { contains: query, mode: "insensitive" } } + { jumlah: { contains: query, mode: "insensitive" } }, ], }, take: limitNum, - }) + }), ]); return { @@ -1920,16 +2568,31 @@ export default async function searchFindMany(context: Context) { ...infoWabahPenyakit.map((b) => ({ type: "infoWabahPenyakit", ...b })), ...keamananLingkungan.map((b) => ({ type: "keamananLingkungan", ...b })), ...polsekTerdekat.map((b) => ({ type: "polsekTerdekat", ...b })), - ...kontakDaruratKeamanan.map((b) => ({ type: "kontakDaruratKeamanan", ...b })), - ...pencegahanKriminalitas.map((b) => ({ type: "pencegahanKriminalitas", ...b })), + ...kontakDaruratKeamanan.map((b) => ({ + type: "kontakDaruratKeamanan", + ...b, + })), + ...pencegahanKriminalitas.map((b) => ({ + type: "pencegahanKriminalitas", + ...b, + })), ...laporanPublik.map((b) => ({ type: "laporanPublik", ...b })), ...tipsKeamanan.map((b) => ({ type: "tipsKeamanan", ...b })), ...pasarDesa.map((b) => ({ type: "pasarDesa", ...b })), ...lowonganKerjaLokal.map((b) => ({ type: "lowonganKerjaLokal", ...b })), ...strukturOrganisasi.map((b) => ({ type: "strukturOrganisasi", ...b })), - ...jumlahPendudukUsiaKerjaYangMenganggurUsia.map((b) => ({ type: "jumlahPendudukUsiaKerjaYangMenganggurUsia", ...b })), - ...jumlahPendudukUsiaKerjaYangMenganggurPendidikan.map((b) => ({ type: "jumlahPendudukUsiaKerjaYangMenganggurPendidikan", ...b })), - ...jumlahPendudukMiskin.map((b) => ({ type: "jumlahPendudukMiskin", ...b })), + ...jumlahPendudukUsiaKerjaYangMenganggurUsia.map((b) => ({ + type: "jumlahPendudukUsiaKerjaYangMenganggurUsia", + ...b, + })), + ...jumlahPendudukUsiaKerjaYangMenganggurPendidikan.map((b) => ({ + type: "jumlahPendudukUsiaKerjaYangMenganggurPendidikan", + ...b, + })), + ...jumlahPendudukMiskin.map((b) => ({ + type: "jumlahPendudukMiskin", + ...b, + })), ...programKemiskinan.map((b) => ({ type: "programKemiskinan", ...b })), ...sektorUnggulanDesa.map((b) => ({ type: "sektorUnggulanDesa", ...b })), ...demografiPekerjaan.map((b) => ({ type: "demografiPekerjaan", ...b })), @@ -1939,16 +2602,34 @@ export default async function searchFindMany(context: Context) { ...mitraKolaborasi.map((b) => ({ type: "mitraKolaborasi", ...b })), ...infoTekno.map((b) => ({ type: "infoTekno", ...b })), ...pengelolaanSampah.map((b) => ({ type: "pengelolaanSampah", ...b })), - ...keteranganBankSampahTerdekat.map((b) => ({ type: "keteranganBankSampahTerdekat", ...b })), + ...keteranganBankSampahTerdekat.map((b) => ({ + type: "keteranganBankSampahTerdekat", + ...b, + })), ...programPenghijauan.map((b) => ({ type: "programPenghijauan", ...b })), ...dataLingkunganDesa.map((b) => ({ type: "dataLingkunganDesa", ...b })), ...gotongRoyong.map((b) => ({ type: "gotongRoyong", ...b })), - ...tujuanEdukasiLingkungan.map((b) => ({ type: "tujuanEdukasiLingkungan", ...b })), - ...materiEdukasiLingkungan.map((b) => ({ type: "materiEdukasiLingkungan", ...b })), - ...contohEdukasiLingkungan.map((b) => ({ type: "contohEdukasiLingkungan", ...b })), + ...tujuanEdukasiLingkungan.map((b) => ({ + type: "tujuanEdukasiLingkungan", + ...b, + })), + ...materiEdukasiLingkungan.map((b) => ({ + type: "materiEdukasiLingkungan", + ...b, + })), + ...contohEdukasiLingkungan.map((b) => ({ + type: "contohEdukasiLingkungan", + ...b, + })), ...filosofiTriHita.map((b) => ({ type: "filosofiTriHita", ...b })), - ...bentukKonservasiBerdasarkanAdat.map((b) => ({ type: "bentukKonservasiBerdasarkanAdat", ...b })), - ...nilaiKonservasiAdat.map((b) => ({ type: "nilaiKonservasiAdat", ...b })), + ...bentukKonservasiBerdasarkanAdat.map((b) => ({ + type: "bentukKonservasiBerdasarkanAdat", + ...b, + })), + ...nilaiKonservasiAdat.map((b) => ({ + type: "nilaiKonservasiAdat", + ...b, + })), ...jenjangPendidikan.map((b) => ({ type: "jenjangPendidikan", ...b })), ...lembaga.map((b) => ({ type: "lembaga", ...b })), ...siswa.map((b) => ({ type: "siswa", ...b })), @@ -1956,14 +2637,25 @@ export default async function searchFindMany(context: Context) { ...keunggulanProgram.map((b) => ({ type: "keunggulanProgram", ...b })), ...tujuanProgram.map((b) => ({ type: "tujuanProgram", ...b })), ...programUnggulan.map((b) => ({ type: "programUnggulan", ...b })), - ...tujuanPendidikanNonFormal.map((b) => ({ type: "tujuanPendidikanNonFormal", ...b })), - ...fasilitasBimbinganBelajarDesa.map((b) => ({ type: "fasilitasBimbinganBelajarDesa", ...b })), - ...lokasiJadwalBimbinganBelajarDesa.map((b) => ({ type: "lokasiJadwalBimbinganBelajarDesa", ...b })), + ...tujuanPendidikanNonFormal.map((b) => ({ + type: "tujuanPendidikanNonFormal", + ...b, + })), + ...fasilitasBimbinganBelajarDesa.map((b) => ({ + type: "fasilitasBimbinganBelajarDesa", + ...b, + })), + ...lokasiJadwalBimbinganBelajarDesa.map((b) => ({ + type: "lokasiJadwalBimbinganBelajarDesa", + ...b, + })), ...tempatKegiatan.map((b) => ({ type: "tempatKegiatan", ...b })), - ...jenisProgramYangDiselenggarakan.map((b) => ({ type: "jenisProgramYangDiselenggarakan", ...b })), + ...jenisProgramYangDiselenggarakan.map((b) => ({ + type: "jenisProgramYangDiselenggarakan", + ...b, + })), ...dataPerpustakaan.map((b) => ({ type: "dataPerpustakaan", ...b })), ...dataPendidikan.map((b) => ({ type: "dataPendidikan", ...b })), - ], nextPage: null, // bisa dibuat lebih kompleks kalau perlu };