Seed Menu Ekonomi
Seed MEnu Inovasi Sisa 2 Menu
This commit is contained in:
25
prisma/_seeder_list/ekonomi/seed_demografi_pekerjaan.ts
Normal file
25
prisma/_seeder_list/ekonomi/seed_demografi_pekerjaan.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import demografiPekerjaan from "../../data/ekonomi/demografi-pekerjaan/demografi-pekerjaan.json";
|
||||
|
||||
export async function seedDemografiPekerjaan() {
|
||||
console.log("🔄 Seeding Demografi Pekerjaan...");
|
||||
for (const k of demografiPekerjaan) {
|
||||
await prisma.dataDemografiPekerjaan.upsert({
|
||||
where: {
|
||||
id: k.id,
|
||||
},
|
||||
update: {
|
||||
pekerjaan: k.pekerjaan,
|
||||
lakiLaki: k.lakiLaki,
|
||||
perempuan: k.perempuan,
|
||||
},
|
||||
create: {
|
||||
id: k.id,
|
||||
pekerjaan: k.pekerjaan,
|
||||
lakiLaki: k.lakiLaki,
|
||||
perempuan: k.perempuan,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Demografi Pekerjaan seeded successfully");
|
||||
}
|
||||
23
prisma/_seeder_list/ekonomi/seed_jumlah_penduduk_miskin.ts
Normal file
23
prisma/_seeder_list/ekonomi/seed_jumlah_penduduk_miskin.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import jumlahPendudukMiskin from "../../data/ekonomi/jumlah-penduduk-miskin/jumlah-penduduk-miskin.json";
|
||||
|
||||
export async function seedJumlahPendudukMiskin() {
|
||||
console.log("🔄 Seeding Jumlah Penduduk Miskin...");
|
||||
for (const k of jumlahPendudukMiskin) {
|
||||
await prisma.grafikJumlahPendudukMiskin.upsert({
|
||||
where: {
|
||||
id: k.id,
|
||||
},
|
||||
update: {
|
||||
year: k.year,
|
||||
totalPoorPopulation: k.totalPoorPopulation,
|
||||
},
|
||||
create: {
|
||||
id: k.id,
|
||||
year: k.year,
|
||||
totalPoorPopulation: k.totalPoorPopulation,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Jumlah Penduduk Miskin seeded successfully");
|
||||
}
|
||||
27
prisma/_seeder_list/ekonomi/seed_jumlah_pengangguran.ts
Normal file
27
prisma/_seeder_list/ekonomi/seed_jumlah_pengangguran.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import jumlahPengangguran from "../../data/ekonomi/jumlah-pengangguran/detail-data-pengangguran.json";
|
||||
|
||||
export async function seedJumlahPengangguran() {
|
||||
for (const d of jumlahPengangguran) {
|
||||
await prisma.detailDataPengangguran.upsert({
|
||||
where: {
|
||||
month_year: { month: d.month, year: d.year },
|
||||
},
|
||||
update: {
|
||||
totalUnemployment: d.totalUnemployment,
|
||||
educatedUnemployment: d.educatedUnemployment,
|
||||
uneducatedUnemployment: d.uneducatedUnemployment,
|
||||
percentageChange: d.percentageChange,
|
||||
},
|
||||
create: {
|
||||
month: d.month,
|
||||
year: d.year,
|
||||
totalUnemployment: d.totalUnemployment,
|
||||
educatedUnemployment: d.educatedUnemployment,
|
||||
uneducatedUnemployment: d.uneducatedUnemployment,
|
||||
percentageChange: d.percentageChange,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("📊 detailDataPengangguran success ...");
|
||||
}
|
||||
35
prisma/_seeder_list/ekonomi/seed_lowongan_kerja_lokal.ts
Normal file
35
prisma/_seeder_list/ekonomi/seed_lowongan_kerja_lokal.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import lowonganKerjaLokal from "../../data/ekonomi/lowongan-kerja-lokal/lowongan-kerja-lokal.json";
|
||||
|
||||
export async function seedLowonganKerjaLokal() {
|
||||
console.log("🔄 Seeding Lowongan Kerja Lokal...");
|
||||
for (const k of lowonganKerjaLokal) {
|
||||
await prisma.lowonganPekerjaan.upsert({
|
||||
where: {
|
||||
id: k.id,
|
||||
},
|
||||
update: {
|
||||
posisi: k.posisi,
|
||||
namaPerusahaan: k.namaPerusahaan,
|
||||
lokasi: k.lokasi,
|
||||
tipePekerjaan: k.tipePekerjaan,
|
||||
gaji: k.gaji,
|
||||
deskripsi: k.deskripsi,
|
||||
kualifikasi: k.kualifikasi,
|
||||
notelp: k.notelp,
|
||||
},
|
||||
create: {
|
||||
id: k.id,
|
||||
posisi: k.posisi,
|
||||
namaPerusahaan: k.namaPerusahaan,
|
||||
lokasi: k.lokasi,
|
||||
tipePekerjaan: k.tipePekerjaan,
|
||||
gaji: k.gaji,
|
||||
deskripsi: k.deskripsi,
|
||||
kualifikasi: k.kualifikasi,
|
||||
notelp: k.notelp,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Lowongan Kerja Lokal seeded successfully");
|
||||
}
|
||||
91
prisma/_seeder_list/ekonomi/seed_pasar_desa.ts
Normal file
91
prisma/_seeder_list/ekonomi/seed_pasar_desa.ts
Normal file
@@ -0,0 +1,91 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import kategoriProduk from "../../data/ekonomi/pasar-desa/kategori-produk.json";
|
||||
import pasarDesa from "../../data/ekonomi/pasar-desa/pasar-desa.json";
|
||||
import kategoriToPasar from "../../data/ekonomi/pasar-desa/kategori-to-pasar.json";
|
||||
|
||||
export async function seedPasarDesa() {
|
||||
console.log("🔄 Seeding Kategori Produk...");
|
||||
for (const k of kategoriProduk) {
|
||||
await prisma.kategoriProduk.upsert({
|
||||
where: {
|
||||
id: k.id,
|
||||
},
|
||||
update: {
|
||||
nama: k.nama,
|
||||
},
|
||||
create: {
|
||||
id: k.id,
|
||||
nama: k.nama,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Kategori Produk seeded successfully");
|
||||
|
||||
console.log("🔄 Seeding Pasar Desa...");
|
||||
|
||||
for (const p of pasarDesa) {
|
||||
let imageId: string | null = null;
|
||||
|
||||
if (p.imageName) {
|
||||
const image = await prisma.fileStorage.findUnique({
|
||||
where: { name: p.imageName },
|
||||
select: { id: true },
|
||||
});
|
||||
|
||||
if (!image) {
|
||||
console.warn(
|
||||
`⚠️ Image not found for pasar desa "${p.nama}": ${p.imageName}`,
|
||||
);
|
||||
} else {
|
||||
imageId = image.id;
|
||||
}
|
||||
}
|
||||
|
||||
await prisma.pasarDesa.upsert({
|
||||
where: { id: p.id },
|
||||
update: {
|
||||
nama: p.nama,
|
||||
deskripsi: p.deskripsi,
|
||||
harga: p.harga,
|
||||
rating: p.rating,
|
||||
alamatUsaha: p.alamatUsaha,
|
||||
kontak: p.kontak,
|
||||
imageId,
|
||||
kategoriProdukId: p.kategoriProdukId,
|
||||
},
|
||||
create: {
|
||||
id: p.id,
|
||||
nama: p.nama,
|
||||
deskripsi: p.deskripsi,
|
||||
harga: p.harga,
|
||||
rating: p.rating,
|
||||
alamatUsaha: p.alamatUsaha,
|
||||
kontak: p.kontak,
|
||||
imageId,
|
||||
kategoriProdukId: p.kategoriProdukId,
|
||||
},
|
||||
});
|
||||
|
||||
console.log(`✅ Pasar desa seeded: ${p.nama}`);
|
||||
}
|
||||
|
||||
console.log("🎉 Pasar desa seed selesai");
|
||||
|
||||
console.log("🔄 Seeding Kategori To Pasar...");
|
||||
for (const p of kategoriToPasar) {
|
||||
await prisma.kategoriToPasar.upsert({
|
||||
where: {
|
||||
id: p.id,
|
||||
},
|
||||
update: {
|
||||
kategoriId: p.kategoriId,
|
||||
pasarDesaId: p.pasarDesaId,
|
||||
},
|
||||
create: {
|
||||
id: p.id,
|
||||
kategoriId: p.kategoriId,
|
||||
pasarDesaId: p.pasarDesaId,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
81
prisma/_seeder_list/ekonomi/seed_pendapatan_asli.ts
Normal file
81
prisma/_seeder_list/ekonomi/seed_pendapatan_asli.ts
Normal file
@@ -0,0 +1,81 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import apbdes from "../../data/ekonomi/pendapatan-asli-desa/apbDesa.json";
|
||||
import pendapatan from "../../data/ekonomi/pendapatan-asli-desa/pendapatanDesa.json";
|
||||
import belanja from "../../data/ekonomi/pendapatan-asli-desa/belanjaDesa.json";
|
||||
import pembiayaan from "../../data/ekonomi/pendapatan-asli-desa/pembiayaanDesa.json";
|
||||
|
||||
export async function seedPendapatanAsli() {
|
||||
console.log("🔄 Seeding Pendapatan Asli...");
|
||||
for (const d of apbdes) {
|
||||
await prisma.apbDesa.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
update: {
|
||||
tahun: d.tahun,
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
tahun: d.tahun,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Pendapatan Asli seeded successfully");
|
||||
|
||||
console.log("🔄 Seeding Pendapatan...");
|
||||
for (const d of pendapatan) {
|
||||
await prisma.pendapatan.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
update: {
|
||||
name: d.name,
|
||||
value: d.nilai
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
value: d.nilai
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Pendapatan seeded successfully");
|
||||
|
||||
console.log("🔄 Seeding Belanja...");
|
||||
for (const d of belanja) {
|
||||
await prisma.belanja.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
update: {
|
||||
name: d.name,
|
||||
value: d.nilai
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
value: d.nilai
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Belanja seeded successfully");
|
||||
|
||||
console.log("🔄 Seeding Pembiayaan...");
|
||||
for (const d of pembiayaan) {
|
||||
await prisma.pembiayaan.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
update: {
|
||||
name: d.name,
|
||||
value: d.nilai
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
value: d.nilai
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Pembiayaan seeded successfully");
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import grafikMenganggurBerdasarkanUsia from "../../data/ekonomi/jumlah-penduduk-usia-kerja-yang-menganggur/pengangguran-berdasarkan-usia.json";
|
||||
import grafikMenganggurBerdasarkanPendidikan from "../../data/ekonomi/jumlah-penduduk-usia-kerja-yang-menganggur/pengangguran-berdasarkan-pendidikan.json";
|
||||
|
||||
export async function seedPendudukUsiaKerjaYangMenganggur() {
|
||||
for (const p of grafikMenganggurBerdasarkanUsia) {
|
||||
await prisma.grafikMenganggurBerdasarkanUsia.upsert({
|
||||
where: {
|
||||
id: p.id,
|
||||
},
|
||||
update: {
|
||||
usia18_25: p.usia18_25,
|
||||
usia26_35: p.usia26_35,
|
||||
usia36_45: p.usia36_45,
|
||||
usia46_keatas: p.usia46_keatas,
|
||||
},
|
||||
create: {
|
||||
id: p.id,
|
||||
usia18_25: p.usia18_25,
|
||||
usia26_35: p.usia26_35,
|
||||
usia36_45: p.usia36_45,
|
||||
usia46_keatas: p.usia46_keatas,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("📊 grafikMenganggurBerdasarkanUsia success ...");
|
||||
for (const p of grafikMenganggurBerdasarkanPendidikan) {
|
||||
await prisma.grafikMenganggurBerdasarkanPendidikan.upsert({
|
||||
where: {
|
||||
id: p.id,
|
||||
},
|
||||
update: {
|
||||
SD: p.SD,
|
||||
SMP: p.SMP,
|
||||
SMA: p.SMA,
|
||||
D3: p.D3,
|
||||
S1: p.S1,
|
||||
},
|
||||
create: {
|
||||
id: p.id,
|
||||
SD: p.SD,
|
||||
SMP: p.SMP,
|
||||
SMA: p.SMA,
|
||||
D3: p.D3,
|
||||
S1: p.S1,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("📊 grafikMenganggurBerdasarkanUsia success ...");
|
||||
}
|
||||
50
prisma/_seeder_list/ekonomi/seed_program_kemiskinan.ts
Normal file
50
prisma/_seeder_list/ekonomi/seed_program_kemiskinan.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import programKemiskinan from "../../data/ekonomi/program-kemiskinan/program-kemiskinan.json";
|
||||
import statistikKemiskinan from "../../data/ekonomi/program-kemiskinan/statistik-kemiskinan.json";
|
||||
|
||||
export async function seedProgramKemiskinan() {
|
||||
for (const s of statistikKemiskinan) {
|
||||
await prisma.statistikKemiskinan.upsert({
|
||||
where: { tahun: s.tahun }, // ✅ FIX
|
||||
update: {
|
||||
jumlah: s.jumlah,
|
||||
},
|
||||
create: {
|
||||
id: s.id, // id boleh tetap
|
||||
tahun: s.tahun,
|
||||
jumlah: s.jumlah,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
console.log("📊 Statistik Kemiskinan seeded successfully");
|
||||
|
||||
console.log("🔄 Seeding Program Kemiskinan...");
|
||||
for (const k of programKemiskinan) {
|
||||
await prisma.programKemiskinan.upsert({
|
||||
where: { id: k.id },
|
||||
update: {
|
||||
nama: k.nama,
|
||||
deskripsi: k.deskripsi,
|
||||
icon: k.icon,
|
||||
statistik: {
|
||||
connect: {
|
||||
tahun: k.tahun, // 👈 BUKAN ID
|
||||
},
|
||||
},
|
||||
},
|
||||
create: {
|
||||
id: k.id,
|
||||
nama: k.nama,
|
||||
deskripsi: k.deskripsi,
|
||||
icon: k.icon,
|
||||
statistik: {
|
||||
connect: {
|
||||
tahun: k.tahun,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Program Kemiskinan seeded successfully");
|
||||
}
|
||||
25
prisma/_seeder_list/ekonomi/seed_sektor_unggulan_desa.ts
Normal file
25
prisma/_seeder_list/ekonomi/seed_sektor_unggulan_desa.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import sektorUnggulanDesa from "../../data/ekonomi/sektor-unggulan/sektor-unggulan.json";
|
||||
|
||||
export async function seedSektorUnggulanDesa() {
|
||||
console.log("🔄 Seeding Sektor Unggulan Desa...");
|
||||
for (const k of sektorUnggulanDesa) {
|
||||
await prisma.sektorUnggulanDesa.upsert({
|
||||
where: {
|
||||
id: k.id,
|
||||
},
|
||||
update: {
|
||||
name: k.name,
|
||||
description: k.description,
|
||||
value: k.value,
|
||||
},
|
||||
create: {
|
||||
id: k.id,
|
||||
name: k.name,
|
||||
description: k.description,
|
||||
value: k.value,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Sektor Unggulan Desa seeded successfully");
|
||||
}
|
||||
58
prisma/_seeder_list/ekonomi/seed_struktur_bumdes.ts
Normal file
58
prisma/_seeder_list/ekonomi/seed_struktur_bumdes.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import posisiOrganisasiBumDes from "../../data/ekonomi/struktur-organisasi/posisi-organisasi-bumdes.json";
|
||||
import pegawai from "../../data/ekonomi/struktur-organisasi/pegawai-bumdes.json";
|
||||
|
||||
export async function seedStrukturBumdes() {
|
||||
const flattenedPosisi = posisiOrganisasiBumDes.flat();
|
||||
|
||||
// ✅ Urutkan berdasarkan hierarki
|
||||
const sortedPosisi = flattenedPosisi.sort((a, b) => a.hierarki - b.hierarki);
|
||||
|
||||
for (const p of sortedPosisi) {
|
||||
console.log(`Seeding: ${p.nama} (id: ${p.id}, parent: ${p.parentId})`);
|
||||
if (p.parentId) {
|
||||
const parentExists = flattenedPosisi.some((pos) => pos.id === p.parentId);
|
||||
if (!parentExists) {
|
||||
console.warn(
|
||||
`⚠️ Parent tidak ditemukan: ${p.parentId} untuk ${p.nama}`,
|
||||
);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
await prisma.posisiOrganisasiBumDes.upsert({
|
||||
where: { id: p.id },
|
||||
update: p,
|
||||
create: p,
|
||||
});
|
||||
}
|
||||
console.log("posisi organisasi berhasil");
|
||||
for (const p of pegawai) {
|
||||
await prisma.pegawaiBumDes.upsert({
|
||||
where: {
|
||||
id: p.id,
|
||||
},
|
||||
update: {
|
||||
namaLengkap: p.namaLengkap,
|
||||
gelarAkademik: p.gelarAkademik,
|
||||
tanggalMasuk: new Date(p.tanggalMasuk),
|
||||
email: p.email,
|
||||
telepon: p.telepon,
|
||||
alamat: p.alamat,
|
||||
posisiId: p.posisiId,
|
||||
isActive: p.isActive,
|
||||
},
|
||||
create: {
|
||||
id: p.id,
|
||||
namaLengkap: p.namaLengkap,
|
||||
gelarAkademik: p.gelarAkademik,
|
||||
tanggalMasuk: new Date(p.tanggalMasuk),
|
||||
email: p.email,
|
||||
telepon: p.telepon,
|
||||
alamat: p.alamat,
|
||||
posisiId: p.posisiId,
|
||||
isActive: p.isActive,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("pegawai success ...");
|
||||
}
|
||||
31
prisma/_seeder_list/inovasi/seed_ajukan.ts
Normal file
31
prisma/_seeder_list/inovasi/seed_ajukan.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import ajukanIde from "../../data/inovasi/ajukan-ide/ajukan-ide.json";
|
||||
|
||||
export async function seedAjukan() {
|
||||
console.log("🔄 Seeding Ajukan Ide Inovatif...");
|
||||
for (const d of ajukanIde) {
|
||||
await prisma.ajukanIdeInovatif.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
update: {
|
||||
name: d.name,
|
||||
alamat: d.alamat,
|
||||
namaIde: d.namaIde,
|
||||
deskripsi: d.deskripsi,
|
||||
masalah: d.masalah,
|
||||
benefit: d.benefit,
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
alamat: d.alamat,
|
||||
namaIde: d.namaIde,
|
||||
deskripsi: d.deskripsi,
|
||||
masalah: d.masalah,
|
||||
benefit: d.benefit,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Ajukan Ide Inovatif seeded successfully");
|
||||
}
|
||||
25
prisma/_seeder_list/inovasi/seed_desa_digital.ts
Normal file
25
prisma/_seeder_list/inovasi/seed_desa_digital.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import desaDigital from "../../data/inovasi/desa-digital/desa-digital.json";
|
||||
|
||||
export async function seedDesaDigital() {
|
||||
console.log("🔄 Seeding Desa Digital...");
|
||||
for (const d of desaDigital) {
|
||||
await prisma.desaDigital.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
update: {
|
||||
name: d.name,
|
||||
deskripsi: d.deskripsi,
|
||||
imageId: d.imageId,
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
deskripsi: d.deskripsi,
|
||||
imageId: d.imageId,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Desa Digital seeded successfully");
|
||||
}
|
||||
42
prisma/_seeder_list/inovasi/seed_info_teknologi.ts
Normal file
42
prisma/_seeder_list/inovasi/seed_info_teknologi.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import infoTeknologi from "../../data/inovasi/info-teknologi/info-teknologi.json";
|
||||
|
||||
export async function seedInfoTeknologi() {
|
||||
console.log("🔄 Seeding Info Teknologi...");
|
||||
for (const p of infoTeknologi) {
|
||||
let imageId: string | null = null;
|
||||
|
||||
if (p.imageName) {
|
||||
const image = await prisma.fileStorage.findUnique({
|
||||
where: { name: p.imageName },
|
||||
select: { id: true },
|
||||
});
|
||||
|
||||
if (!image) {
|
||||
console.warn(
|
||||
`⚠️ Image not found for berita "${p.name}": ${p.imageName}`,
|
||||
);
|
||||
} else {
|
||||
imageId = image.id;
|
||||
}
|
||||
}
|
||||
|
||||
await prisma.infoTekno.upsert({
|
||||
where: {
|
||||
id: p.id,
|
||||
},
|
||||
update: {
|
||||
name: p.name,
|
||||
deskripsi: p.deskripsi,
|
||||
imageId: imageId,
|
||||
},
|
||||
create: {
|
||||
id: p.id,
|
||||
name: p.name,
|
||||
deskripsi: p.deskripsi,
|
||||
imageId: imageId,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Info Teknologi seeded successfully");
|
||||
}
|
||||
66
prisma/_seeder_list/inovasi/seed_kolaborasi_inovasi.ts
Normal file
66
prisma/_seeder_list/inovasi/seed_kolaborasi_inovasi.ts
Normal file
@@ -0,0 +1,66 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import kolaborasiInovasi from "../../data/inovasi/kolaborasi-inovasi/kolaborasi-inovasi.json";
|
||||
import mitraKolaborasi from "../../data/inovasi/kolaborasi-inovasi/mitra-kolaborasi.json";
|
||||
|
||||
export async function seedKolaborasiInovasi() {
|
||||
console.log("🔄 Seeding Kolaborasi Inovasi...");
|
||||
for (const p of kolaborasiInovasi) {
|
||||
await prisma.kolaborasiInovasi.upsert({
|
||||
where: {
|
||||
id: p.id,
|
||||
},
|
||||
update: {
|
||||
name: p.name,
|
||||
tahun: p.tahun,
|
||||
slug: p.slug,
|
||||
deskripsi: p.deskripsi,
|
||||
kolaborator: p.kolaborator,
|
||||
},
|
||||
create: {
|
||||
id: p.id,
|
||||
name: p.name,
|
||||
tahun: p.tahun,
|
||||
slug: p.slug,
|
||||
deskripsi: p.deskripsi,
|
||||
kolaborator: p.kolaborator,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Kolaborasi Inovasi seeded successfully");
|
||||
|
||||
console.log("🔄 Seeding Mitra Kolaborasi...");
|
||||
for (const p of mitraKolaborasi) {
|
||||
let imageId: string | null = null;
|
||||
|
||||
if (p.imageName) {
|
||||
const image = await prisma.fileStorage.findUnique({
|
||||
where: { name: p.imageName },
|
||||
select: { id: true },
|
||||
});
|
||||
|
||||
if (!image) {
|
||||
console.warn(
|
||||
`⚠️ Image not found for mitra kolaborasi "${p.name}": ${p.imageName}`,
|
||||
);
|
||||
} else {
|
||||
imageId = image.id;
|
||||
}
|
||||
}
|
||||
|
||||
await prisma.mitraKolaborasi.upsert({
|
||||
where: {
|
||||
id: p.id,
|
||||
},
|
||||
update: {
|
||||
name: p.name,
|
||||
imageId: imageId,
|
||||
},
|
||||
create: {
|
||||
id: p.id,
|
||||
name: p.name,
|
||||
imageId: imageId,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Mitra Kolaborasi seeded successfully");
|
||||
}
|
||||
96
prisma/_seeder_list/inovasi/seed_layanan_online_desa.ts
Normal file
96
prisma/_seeder_list/inovasi/seed_layanan_online_desa.ts
Normal file
@@ -0,0 +1,96 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import jenisLayanan from "../../data/inovasi/layanan-online-desa/jenis-layanan.json";
|
||||
import administrasiOnline from "../../data/inovasi/layanan-online-desa/administrasi-online.json";
|
||||
import jenisPengaduan from "../../data/inovasi/layanan-online-desa/jenis-pengaduan.json";
|
||||
import pengaduanMasyarakat from "../../data/inovasi/layanan-online-desa/pengaduan-masyarakat.json";
|
||||
|
||||
export async function seedLayananOnlineDesa() {
|
||||
console.log("🔄 Seeding Jenis Layanan...");
|
||||
for (const j of jenisLayanan) {
|
||||
await prisma.jenisLayanan.upsert({
|
||||
where: {
|
||||
id: j.id,
|
||||
},
|
||||
update: {
|
||||
nama: j.nama,
|
||||
deskripsi: j.deskripsi,
|
||||
},
|
||||
create: {
|
||||
id: j.id,
|
||||
nama: j.nama,
|
||||
deskripsi: j.deskripsi,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Jenis Layanan seeded successfully");
|
||||
console.log("🔄 Seeding Administrasi Online...");
|
||||
for (const d of administrasiOnline) {
|
||||
await prisma.administrasiOnline.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
update: {
|
||||
name: d.name,
|
||||
alamat: d.alamat,
|
||||
nomorTelepon: d.nomorTelepon,
|
||||
jenisLayananId: d.jenisLayananId,
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
alamat: d.alamat,
|
||||
nomorTelepon: d.nomorTelepon,
|
||||
jenisLayananId: d.jenisLayananId,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Administrasi Online seeded successfully");
|
||||
console.log("🔄 Seeding Jenis Pengaduan Masyarakat...");
|
||||
for (const d of jenisPengaduan) {
|
||||
await prisma.jenisPengaduan.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
update: {
|
||||
nama: d.nama,
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
nama: d.nama,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Jenis Pengaduan Masyarakat seeded successfully");
|
||||
console.log("🔄 Seeding Pengaduan Masyarakat...");
|
||||
for (const d of pengaduanMasyarakat) {
|
||||
await prisma.pengaduanMasyarakat.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
update: {
|
||||
name: d.name,
|
||||
email: d.email,
|
||||
nik: d.nik,
|
||||
nomorTelepon: d.nomorTelepon,
|
||||
judulPengaduan: d.judulPengaduan,
|
||||
lokasiKejadian: d.lokasiKejadian,
|
||||
imageId: d.imageId,
|
||||
deskripsiPengaduan: d.deskripsiPengaduan,
|
||||
jenisPengaduanId: d.jenisPengaduanId,
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
email: d.email,
|
||||
nik: d.nik,
|
||||
nomorTelepon: d.nomorTelepon,
|
||||
judulPengaduan: d.judulPengaduan,
|
||||
lokasiKejadian: d.lokasiKejadian,
|
||||
imageId: d.imageId,
|
||||
deskripsiPengaduan: d.deskripsiPengaduan,
|
||||
jenisPengaduanId: d.jenisPengaduanId,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Pengaduan Masyarakat seeded successfully");
|
||||
}
|
||||
27
prisma/_seeder_list/inovasi/seed_program_kreatif_desa.ts
Normal file
27
prisma/_seeder_list/inovasi/seed_program_kreatif_desa.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import programKreatif from "../../data/inovasi/program-kreatif-desa/program-kreatif-desa.json";
|
||||
|
||||
export async function seedProgramKreatifDesa() {
|
||||
console.log("🔄 Seeding Program Kreatif...");
|
||||
for (const p of programKreatif) {
|
||||
await prisma.programKreatif.upsert({
|
||||
where: {
|
||||
id: p.id,
|
||||
},
|
||||
update: {
|
||||
name: p.name,
|
||||
deskripsi: p.deskripsi,
|
||||
icon: p.icon,
|
||||
slug: p.slug,
|
||||
},
|
||||
create: {
|
||||
id: p.id,
|
||||
name: p.name,
|
||||
deskripsi: p.deskripsi,
|
||||
icon: p.icon,
|
||||
slug: p.slug,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ Program Kreatif seeded successfully");
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
"id": "1b7a17ea-83f7-4e73-a94d-96e2b4a623f2",
|
||||
"nama": "Warung Pasar Darmasaba",
|
||||
"harga": 30000,
|
||||
"imageId": "cmkew56ls0000vnysrnzr9ttx",
|
||||
"imageName": "YdCBnK-bWxlyHjwsk4Qie-mobile.webp",
|
||||
"rating": 4.3,
|
||||
"alamatUsaha": "Br. Baler Pasar, Desa Darmasaba, Kec. Abiansemal",
|
||||
"kontak": "081234567890",
|
||||
@@ -13,7 +13,7 @@
|
||||
{
|
||||
"id": "6dea2257-b710-4cd2-8d94-9b6737e658d8",
|
||||
"nama": "Jajanan Pasar Bu Made",
|
||||
"imageId": "cmkewaa2s0001vnysvvs9tu56",
|
||||
"imageName": "TWdNTZZbTOhFTNJGGPDyG-mobile.webp",
|
||||
"harga": 5000,
|
||||
"rating": 4.6,
|
||||
"alamatUsaha": "Jl. Raya Darmasaba, dekat Banjar Baler Pasar",
|
||||
@@ -24,7 +24,7 @@
|
||||
{
|
||||
"id": "24c6b992-49da-4c6e-aebb-72cf89f75438",
|
||||
"nama": "Sayur Segar Pak Wayan",
|
||||
"imageId": "cmkewcvfq0002vnys6985nm90",
|
||||
"imageName": "mtQsaKtQnhxIYVIooCkiQ-mobile.webp",
|
||||
"harga": 20000,
|
||||
"rating": 4.4,
|
||||
"alamatUsaha": "Area Pasar Desa Darmasaba",
|
||||
@@ -35,7 +35,7 @@
|
||||
{
|
||||
"id": "d62660a2-ac6b-428a-acf6-58cc837ef789",
|
||||
"nama": "Ayam & Daging Segar Darmasaba",
|
||||
"imageId": "cmkewf4u90003vnys87en35nj",
|
||||
"imageName": "Ez-SkRyf_F-1gksz_amNg-mobile.webp",
|
||||
"harga": 80000,
|
||||
"rating": 4.2,
|
||||
"alamatUsaha": "Br. Baler Pasar, Desa Darmasaba",
|
||||
|
||||
@@ -3,24 +3,24 @@
|
||||
"id": "cmkm2xlqr000mvnswdaymiho6",
|
||||
"name": "Darmasaba Digital App",
|
||||
"deskripsi": "<p>Aplikasi layanan desa berbasis teknologi untuk transparansi informasi dan layanan publik di Desa Darmasaba yang membantu warga mendapatkan informasi administratif, berita desa, dan pelayanan digital lainnya secara cepat dan mudah.</p>",
|
||||
"imageId": "cmkm3bnkt000qvnswzhqa4upf"
|
||||
"imageName": "xVrwJgdwtcoABPU6DB__Y-mobile.webp"
|
||||
},
|
||||
{
|
||||
"id": "cmkm3b1fw000pvnswpr7hgzhp",
|
||||
"name": "Program Digitalisasi Desa",
|
||||
"deskripsi": "<p>Program kerja sama Desa Darmasaba bersama PT. Bali Interaktif Perkasa untuk memperkuat kapasitas pemanfaatan teknologi informasi dan komunikasi dalam administrasi desa, pelayanan publik, serta pemberdayaan digital masyarakat.</p>",
|
||||
"imageId": "cmkm3b1a2000nvnswb9x48dzk"
|
||||
"imageName": "JjUDrfqxuEMYSAza-s7A8-mobile.webp"
|
||||
},
|
||||
{
|
||||
"id": "cmkm3fwmq000tvnswejmhm7yc",
|
||||
"name": "Pengembangan Sistem Informasi Desa",
|
||||
"deskripsi": "<p>Inisiatif pengembangan Sistem Informasi Desa yang mendukung pengelolaan data desa secara digital, termasuk data publik, laporan, dan statistik warga, sebagai bagian dari peningkatan kapabilitas teknologi informasi desa.</p>",
|
||||
"imageId": "cmkm3fwg4000rvnsw5d1vbiz0"
|
||||
"imageName": "42RCCpBZla4ZWxXcwx7kG-mobile.webp"
|
||||
},
|
||||
{
|
||||
"id": "cmkm3hjp6000wvnswkuylnf53",
|
||||
"name": "Pelayanan Kependudukan Berbasis Digital",
|
||||
"deskripsi": "<p>Program untuk menyediakan layanan kependudukan secara digital, termasuk integrasi sistem administrasi kependudukan desa dengan sistem nasional, guna mempercepat layanan e-KTP, kartu keluarga, dan berkas kependudukan lainnya.</p>",
|
||||
"imageId": "cmkm3hjhz000uvnswwqu6z9f6"
|
||||
"imageName": "TrbkwnYM5rKZeHlISHCX4-mobile.webp"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
{
|
||||
"id": "cmkm1ziyi000dvnsweg8lp3f7",
|
||||
"name": "TP Posyandu Bali",
|
||||
"imageId": "cmkm1zis2000bvnsw85m6wdlf"
|
||||
"imageName": "qJFWokQLCaO60j0XJU_33-mobile.webp"
|
||||
},
|
||||
{
|
||||
"id": "cmkm1ziyi000dvnsweg8lq4g8",
|
||||
"name": "BRI Peduli",
|
||||
"imageId": "cmkm2dgif000evnswskk0dfo9"
|
||||
"imageName": "nzLJoEAfl7HkpUcYa8Y1E-mobile.webp"
|
||||
},
|
||||
{
|
||||
"id": "cmkm1ziyi000dvnsweg8lr5h9",
|
||||
"name": "Universitas Warmadewa (KKN-PMM)",
|
||||
"imageId": "cmkm2fzub000hvnswnvoytlzs"
|
||||
"imageName": "JFd5C2FoaZcgDQUmvp-AO-mobile.webp"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1710,8 +1710,8 @@ model InfoTekno {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
deskripsi String @db.Text
|
||||
image FileStorage @relation(fields: [imageId], references: [id])
|
||||
imageId String
|
||||
image FileStorage? @relation(fields: [imageId], references: [id])
|
||||
imageId String?
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
deletedAt DateTime @default(now())
|
||||
|
||||
573
prisma/seed.ts
573
prisma/seed.ts
@@ -37,6 +37,22 @@ 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";
|
||||
import { seedPasarDesa } from "./_seeder_list/ekonomi/seed_pasar_desa";
|
||||
import { seedLowonganKerjaLokal } from "./_seeder_list/ekonomi/seed_lowongan_kerja_lokal";
|
||||
import { seedDemografiPekerjaan } from "./_seeder_list/ekonomi/seed_demografi_pekerjaan";
|
||||
import { seedSektorUnggulanDesa } from "./_seeder_list/ekonomi/seed_sektor_unggulan_desa";
|
||||
import { seedProgramKemiskinan } from "./_seeder_list/ekonomi/seed_program_kemiskinan";
|
||||
import { seedJumlahPendudukMiskin } from "./_seeder_list/ekonomi/seed_jumlah_penduduk_miskin";
|
||||
import { seedPendudukUsiaKerjaYangMenganggur } from "./_seeder_list/ekonomi/seed_penduduk_usia_kerja_yang_menganggur";
|
||||
import { seedJumlahPengangguran } from "./_seeder_list/ekonomi/seed_jumlah_pengangguran";
|
||||
import { seedPendapatanAsli } from "./_seeder_list/ekonomi/seed_pendapatan_asli";
|
||||
import { seedStrukturBumdes } from "./_seeder_list/ekonomi/seed_struktur_bumdes";
|
||||
import { seedAjukan } from "./_seeder_list/inovasi/seed_ajukan";
|
||||
import { seedDesaDigital } from "./_seeder_list/inovasi/seed_desa_digital";
|
||||
import { seedLayananOnlineDesa } from "./_seeder_list/inovasi/seed_layanan_online_desa";
|
||||
import { seedProgramKreatifDesa } from "./_seeder_list/inovasi/seed_program_kreatif_desa";
|
||||
import { seedKolaborasiInovasi } from "./_seeder_list/inovasi/seed_kolaborasi_inovasi";
|
||||
import { seedInfoTeknologi } from "./_seeder_list/inovasi/seed_info_teknologi";
|
||||
|
||||
(async () => {
|
||||
const totalFiles = await prisma.fileStorage.count();
|
||||
@@ -239,576 +255,51 @@ import { seedLaporanPublik } from "./_seeder_list/keamanan/seed_laporan_publik";
|
||||
|
||||
// // ====================== MENU EKONOMI ========================
|
||||
// // ==================== SUBMENU PASAR DESA ====================
|
||||
// console.log("🔄 Seeding Kategori Produk...");
|
||||
// for (const k of kategoriProduk) {
|
||||
// await prisma.kategoriProduk.upsert({
|
||||
// where: {
|
||||
// id: k.id,
|
||||
// },
|
||||
// update: {
|
||||
// nama: k.nama,
|
||||
// },
|
||||
// create: {
|
||||
// id: k.id,
|
||||
// nama: k.nama,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Kategori Produk seeded successfully");
|
||||
|
||||
// console.log("🔄 Seeding Pasar Desa...");
|
||||
// for (const p of pasarDesa) {
|
||||
// await prisma.pasarDesa.upsert({
|
||||
// where: {
|
||||
// id: p.id,
|
||||
// },
|
||||
// update: {
|
||||
// nama: p.nama,
|
||||
// imageId: p.imageId,
|
||||
// harga: p.harga,
|
||||
// rating: p.rating,
|
||||
// alamatUsaha: p.alamatUsaha,
|
||||
// kontak: p.kontak,
|
||||
// deskripsi: p.deskripsi,
|
||||
// kategoriProdukId: p.kategoriProdukId,
|
||||
// },
|
||||
// create: {
|
||||
// id: p.id,
|
||||
// nama: p.nama,
|
||||
// imageId: p.imageId,
|
||||
// harga: p.harga,
|
||||
// rating: p.rating,
|
||||
// alamatUsaha: p.alamatUsaha,
|
||||
// kontak: p.kontak,
|
||||
// deskripsi: p.deskripsi,
|
||||
// kategoriProdukId: p.kategoriProdukId,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Pasar Desa seeded successfully");
|
||||
|
||||
// console.log("🔄 Seeding Kategori To Pasar...");
|
||||
// for (const p of kategoriToPasar) {
|
||||
// await prisma.kategoriToPasar.upsert({
|
||||
// where: {
|
||||
// id: p.id,
|
||||
// },
|
||||
// update: {
|
||||
// kategoriId: p.kategoriId,
|
||||
// pasarDesaId: p.pasarDesaId,
|
||||
// },
|
||||
// create: {
|
||||
// id: p.id,
|
||||
// kategoriId: p.kategoriId,
|
||||
// pasarDesaId: p.pasarDesaId,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
await seedPasarDesa();
|
||||
|
||||
// // ==================== SUBMENU LOWONGAN KERJA LOKAL ==========
|
||||
// console.log("🔄 Seeding Lowongan Kerja Lokal...");
|
||||
// for (const k of lowonganKerjaLokal) {
|
||||
// await prisma.lowonganPekerjaan.upsert({
|
||||
// where: {
|
||||
// id: k.id,
|
||||
// },
|
||||
// update: {
|
||||
// posisi: k.posisi,
|
||||
// namaPerusahaan: k.namaPerusahaan,
|
||||
// lokasi: k.lokasi,
|
||||
// tipePekerjaan: k.tipePekerjaan,
|
||||
// gaji: k.gaji,
|
||||
// deskripsi: k.deskripsi,
|
||||
// kualifikasi: k.kualifikasi,
|
||||
// notelp: k.notelp,
|
||||
// },
|
||||
// create: {
|
||||
// id: k.id,
|
||||
// posisi: k.posisi,
|
||||
// namaPerusahaan: k.namaPerusahaan,
|
||||
// lokasi: k.lokasi,
|
||||
// tipePekerjaan: k.tipePekerjaan,
|
||||
// gaji: k.gaji,
|
||||
// deskripsi: k.deskripsi,
|
||||
// kualifikasi: k.kualifikasi,
|
||||
// notelp: k.notelp,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Lowongan Kerja Lokal seeded successfully");
|
||||
await seedLowonganKerjaLokal();
|
||||
|
||||
// // ==================== SUBMENU STRUKTUR ORGANISASI DAN SK PENGURUS BUMDES ==========
|
||||
// const sortedPosisiBumdes = flattenedPosisiBumdes.sort(
|
||||
// (a, b) => a.hierarki - b.hierarki,
|
||||
// );
|
||||
|
||||
// for (const p of sortedPosisiBumdes) {
|
||||
// console.log(`Seeding: ${p.nama} (id: ${p.id}, parent: ${p.parentId})`);
|
||||
|
||||
// if (p.parentId) {
|
||||
// const parentExists = flattenedPosisi.some((pos) => pos.id === p.parentId);
|
||||
// if (!parentExists) {
|
||||
// console.warn(
|
||||
// `⚠️ Parent tidak ditemukan: ${p.parentId} untuk ${p.nama}`,
|
||||
// );
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
|
||||
// await prisma.posisiOrganisasiBumDes.upsert({
|
||||
// where: { id: p.id },
|
||||
// update: p,
|
||||
// create: p,
|
||||
// });
|
||||
// }
|
||||
// console.log("posisi organisasi berhasil");
|
||||
|
||||
// for (const p of pegawai) {
|
||||
// await prisma.pegawaiBumDes.upsert({
|
||||
// where: {
|
||||
// id: p.id,
|
||||
// },
|
||||
// update: {
|
||||
// namaLengkap: p.namaLengkap,
|
||||
// gelarAkademik: p.gelarAkademik,
|
||||
// tanggalMasuk: new Date(p.tanggalMasuk),
|
||||
// email: p.email,
|
||||
// telepon: p.telepon,
|
||||
// alamat: p.alamat,
|
||||
// posisiId: p.posisiId,
|
||||
// isActive: p.isActive,
|
||||
// },
|
||||
// create: {
|
||||
// id: p.id,
|
||||
// namaLengkap: p.namaLengkap,
|
||||
// gelarAkademik: p.gelarAkademik,
|
||||
// tanggalMasuk: new Date(p.tanggalMasuk),
|
||||
// email: p.email,
|
||||
// telepon: p.telepon,
|
||||
// alamat: p.alamat,
|
||||
// posisiId: p.posisiId,
|
||||
// isActive: p.isActive,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("pegawai success ...");
|
||||
await seedStrukturBumdes();
|
||||
|
||||
// // ==================== SUBMENU PENDAPATAN ASLI DESA ==========
|
||||
await seedPendapatanAsli();
|
||||
|
||||
// // ==================== SUBMENU JUMLAH PENGANGGURAN ==========
|
||||
// for (const d of detailDataPengangguran) {
|
||||
// await prisma.detailDataPengangguran.upsert({
|
||||
// where: {
|
||||
// month_year: { month: d.month, year: d.year },
|
||||
// },
|
||||
// update: {
|
||||
// totalUnemployment: d.totalUnemployment,
|
||||
// educatedUnemployment: d.educatedUnemployment,
|
||||
// uneducatedUnemployment: d.uneducatedUnemployment,
|
||||
// percentageChange: d.percentageChange,
|
||||
// },
|
||||
// create: {
|
||||
// month: d.month,
|
||||
// year: d.year,
|
||||
// totalUnemployment: d.totalUnemployment,
|
||||
// educatedUnemployment: d.educatedUnemployment,
|
||||
// uneducatedUnemployment: d.uneducatedUnemployment,
|
||||
// percentageChange: d.percentageChange,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("📊 detailDataPengangguran success ...");
|
||||
await seedJumlahPengangguran();
|
||||
|
||||
// // ==================== SUBMENU PENDUDUK USIA KERJA ==========
|
||||
// for (const p of grafikMenganggurBerdasarkanUsia) {
|
||||
// await prisma.grafikMenganggurBerdasarkanUsia.upsert({
|
||||
// where: {
|
||||
// id: p.id,
|
||||
// },
|
||||
// update: {
|
||||
// usia18_25: p.usia18_25,
|
||||
// usia26_35: p.usia26_35,
|
||||
// usia36_45: p.usia36_45,
|
||||
// usia46_keatas: p.usia46_keatas,
|
||||
// },
|
||||
// create: {
|
||||
// id: p.id,
|
||||
// usia18_25: p.usia18_25,
|
||||
// usia26_35: p.usia26_35,
|
||||
// usia36_45: p.usia36_45,
|
||||
// usia46_keatas: p.usia46_keatas,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("📊 grafikMenganggurBerdasarkanUsia success ...");
|
||||
|
||||
// for (const p of grafikMenganggurBerdasarkanPendidikan) {
|
||||
// await prisma.grafikMenganggurBerdasarkanPendidikan.upsert({
|
||||
// where: {
|
||||
// id: p.id,
|
||||
// },
|
||||
// update: {
|
||||
// SD: p.SD,
|
||||
// SMP: p.SMP,
|
||||
// SMA: p.SMA,
|
||||
// D3: p.D3,
|
||||
// S1: p.S1,
|
||||
// },
|
||||
// create: {
|
||||
// id: p.id,
|
||||
// SD: p.SD,
|
||||
// SMP: p.SMP,
|
||||
// SMA: p.SMA,
|
||||
// D3: p.D3,
|
||||
// S1: p.S1,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("📊 grafikMenganggurBerdasarkanUsia success ...");
|
||||
await seedPendudukUsiaKerjaYangMenganggur();
|
||||
|
||||
// // ==================== SUBMENU PENDUDUK MISKIN =============
|
||||
// console.log("🔄 Seeding Jumlah Penduduk Miskin...");
|
||||
// for (const k of jumlahPendudukMiskin) {
|
||||
// await prisma.grafikJumlahPendudukMiskin.upsert({
|
||||
// where: {
|
||||
// id: k.id,
|
||||
// },
|
||||
// update: {
|
||||
// year: k.year,
|
||||
// totalPoorPopulation: k.totalPoorPopulation,
|
||||
// },
|
||||
// create: {
|
||||
// id: k.id,
|
||||
// year: k.year,
|
||||
// totalPoorPopulation: k.totalPoorPopulation,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Jumlah Penduduk Miskin seeded successfully");
|
||||
await seedJumlahPendudukMiskin();
|
||||
|
||||
// // ==================== SUBMENU PROGRAM KEMISKINAN =============
|
||||
// for (const s of statistikKemiskinan) {
|
||||
// await prisma.statistikKemiskinan.upsert({
|
||||
// where: { tahun: s.tahun }, // ✅ FIX
|
||||
// update: {
|
||||
// jumlah: s.jumlah,
|
||||
// },
|
||||
// create: {
|
||||
// id: s.id, // id boleh tetap
|
||||
// tahun: s.tahun,
|
||||
// jumlah: s.jumlah,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
|
||||
// console.log("📊 Statistik Kemiskinan seeded successfully");
|
||||
|
||||
// console.log("🔄 Seeding Program Kemiskinan...");
|
||||
// for (const k of programKemiskinan) {
|
||||
// await prisma.programKemiskinan.upsert({
|
||||
// where: { id: k.id },
|
||||
// update: {
|
||||
// nama: k.nama,
|
||||
// deskripsi: k.deskripsi,
|
||||
// icon: k.icon,
|
||||
// statistik: {
|
||||
// connect: {
|
||||
// tahun: k.tahun, // 👈 BUKAN ID
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// create: {
|
||||
// id: k.id,
|
||||
// nama: k.nama,
|
||||
// deskripsi: k.deskripsi,
|
||||
// icon: k.icon,
|
||||
// statistik: {
|
||||
// connect: {
|
||||
// tahun: k.tahun,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Program Kemiskinan seeded successfully");
|
||||
await seedProgramKemiskinan();
|
||||
|
||||
// // ==================== SUBMENU SEKTOR UNGGULAN DESA =============
|
||||
// console.log("🔄 Seeding Sektor Unggulan Desa...");
|
||||
// for (const k of sektorUnggulanDesa) {
|
||||
// await prisma.sektorUnggulanDesa.upsert({
|
||||
// where: {
|
||||
// id: k.id,
|
||||
// },
|
||||
// update: {
|
||||
// name: k.name,
|
||||
// description: k.description,
|
||||
// value: k.value,
|
||||
// },
|
||||
// create: {
|
||||
// id: k.id,
|
||||
// name: k.name,
|
||||
// description: k.description,
|
||||
// value: k.value,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Sektor Unggulan Desa seeded successfully");
|
||||
await seedSektorUnggulanDesa();
|
||||
|
||||
// // ==================== SUBMENU DEMOGRAFI PEKERJAAN =============
|
||||
// console.log("🔄 Seeding Demografi Pekerjaan...");
|
||||
// for (const k of demografiPekerjaan) {
|
||||
// await prisma.dataDemografiPekerjaan.upsert({
|
||||
// where: {
|
||||
// id: k.id,
|
||||
// },
|
||||
// update: {
|
||||
// pekerjaan: k.pekerjaan,
|
||||
// lakiLaki: k.lakiLaki,
|
||||
// perempuan: k.perempuan,
|
||||
// },
|
||||
// create: {
|
||||
// id: k.id,
|
||||
// pekerjaan: k.pekerjaan,
|
||||
// lakiLaki: k.lakiLaki,
|
||||
// perempuan: k.perempuan,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Demografi Pekerjaan seeded successfully");
|
||||
await seedDemografiPekerjaan();
|
||||
|
||||
// // ====================== MENU INOVASI ==========================
|
||||
// // ====================== SUBMENU AJUKAN IDE INOVATIF ===========
|
||||
// console.log("🔄 Seeding Ajukan Ide Inovatif...");
|
||||
// for (const d of ajukanIde) {
|
||||
// await prisma.ajukanIdeInovatif.upsert({
|
||||
// where: {
|
||||
// id: d.id,
|
||||
// },
|
||||
// update: {
|
||||
// name: d.name,
|
||||
// alamat: d.alamat,
|
||||
// namaIde: d.namaIde,
|
||||
// deskripsi: d.deskripsi,
|
||||
// masalah: d.masalah,
|
||||
// benefit: d.benefit,
|
||||
// },
|
||||
// create: {
|
||||
// id: d.id,
|
||||
// name: d.name,
|
||||
// alamat: d.alamat,
|
||||
// namaIde: d.namaIde,
|
||||
// deskripsi: d.deskripsi,
|
||||
// masalah: d.masalah,
|
||||
// benefit: d.benefit,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Ajukan Ide Inovatif seeded successfully");
|
||||
await seedAjukan();
|
||||
// // ==================== SUBMENU DESA DIGITAL ====================
|
||||
// console.log("🔄 Seeding Desa Digital...");
|
||||
// for (const d of desaDigital) {
|
||||
// await prisma.desaDigital.upsert({
|
||||
// where: {
|
||||
// id: d.id,
|
||||
// },
|
||||
// update: {
|
||||
// name: d.name,
|
||||
// deskripsi: d.deskripsi,
|
||||
// imageId: d.imageId,
|
||||
// },
|
||||
// create: {
|
||||
// id: d.id,
|
||||
// name: d.name,
|
||||
// deskripsi: d.deskripsi,
|
||||
// imageId: d.imageId,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Desa Digital seeded successfully");
|
||||
await seedDesaDigital();
|
||||
|
||||
// // ==================== SUBMENU LAYANAN ONLINE DESA ==========
|
||||
// console.log("🔄 Seeding Jenis Layanan...");
|
||||
// for (const j of jenisLayanan) {
|
||||
// await prisma.jenisLayanan.upsert({
|
||||
// where: {
|
||||
// id: j.id,
|
||||
// },
|
||||
// update: {
|
||||
// nama: j.nama,
|
||||
// deskripsi: j.deskripsi,
|
||||
// },
|
||||
// create: {
|
||||
// id: j.id,
|
||||
// nama: j.nama,
|
||||
// deskripsi: j.deskripsi,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Jenis Layanan seeded successfully");
|
||||
|
||||
// console.log("🔄 Seeding Administrasi Online...");
|
||||
// for (const d of administrasiOnline) {
|
||||
// await prisma.administrasiOnline.upsert({
|
||||
// where: {
|
||||
// id: d.id,
|
||||
// },
|
||||
// update: {
|
||||
// name: d.name,
|
||||
// alamat: d.alamat,
|
||||
// nomorTelepon: d.nomorTelepon,
|
||||
// jenisLayananId: d.jenisLayananId,
|
||||
// },
|
||||
// create: {
|
||||
// id: d.id,
|
||||
// name: d.name,
|
||||
// alamat: d.alamat,
|
||||
// nomorTelepon: d.nomorTelepon,
|
||||
// jenisLayananId: d.jenisLayananId,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Administrasi Online seeded successfully");
|
||||
|
||||
// console.log("🔄 Seeding Jenis Pengaduan Masyarakat...");
|
||||
// for (const d of jenisPengaduan) {
|
||||
// await prisma.jenisPengaduan.upsert({
|
||||
// where: {
|
||||
// id: d.id,
|
||||
// },
|
||||
// update: {
|
||||
// nama: d.nama,
|
||||
// },
|
||||
// create: {
|
||||
// id: d.id,
|
||||
// nama: d.nama,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Jenis Pengaduan Masyarakat seeded successfully");
|
||||
|
||||
// console.log("🔄 Seeding Pengaduan Masyarakat...");
|
||||
// for (const d of pengaduanMasyarakat) {
|
||||
// await prisma.pengaduanMasyarakat.upsert({
|
||||
// where: {
|
||||
// id: d.id,
|
||||
// },
|
||||
// update: {
|
||||
// name: d.name,
|
||||
// email: d.email,
|
||||
// nik: d.nik,
|
||||
// nomorTelepon: d.nomorTelepon,
|
||||
// judulPengaduan: d.judulPengaduan,
|
||||
// lokasiKejadian: d.lokasiKejadian,
|
||||
// imageId: d.imageId,
|
||||
// deskripsiPengaduan: d.deskripsiPengaduan,
|
||||
// jenisPengaduanId: d.jenisPengaduanId,
|
||||
// },
|
||||
// create: {
|
||||
// id: d.id,
|
||||
// name: d.name,
|
||||
// email: d.email,
|
||||
// nik: d.nik,
|
||||
// nomorTelepon: d.nomorTelepon,
|
||||
// judulPengaduan: d.judulPengaduan,
|
||||
// lokasiKejadian: d.lokasiKejadian,
|
||||
// imageId: d.imageId,
|
||||
// deskripsiPengaduan: d.deskripsiPengaduan,
|
||||
// jenisPengaduanId: d.jenisPengaduanId,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Pengaduan Masyarakat seeded successfully");
|
||||
await seedLayananOnlineDesa();
|
||||
|
||||
// // ==================== SUBMENU PROGRAM KREATIF ==========
|
||||
// console.log("🔄 Seeding Program Kreatif...");
|
||||
// for (const p of programKreatif) {
|
||||
// await prisma.programKreatif.upsert({
|
||||
// where: {
|
||||
// id: p.id,
|
||||
// },
|
||||
// update: {
|
||||
// name: p.name,
|
||||
// deskripsi: p.deskripsi,
|
||||
// icon: p.icon,
|
||||
// slug: p.slug,
|
||||
// },
|
||||
// create: {
|
||||
// id: p.id,
|
||||
// name: p.name,
|
||||
// deskripsi: p.deskripsi,
|
||||
// icon: p.icon,
|
||||
// slug: p.slug,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Program Kreatif seeded successfully");
|
||||
|
||||
await seedProgramKreatifDesa();
|
||||
// // ==================== SUBMENU KOLABORASI INOVASI ==========
|
||||
// console.log("🔄 Seeding Kolaborasi Inovasi...");
|
||||
// for (const p of kolaborasiInovasi) {
|
||||
// await prisma.kolaborasiInovasi.upsert({
|
||||
// where: {
|
||||
// id: p.id,
|
||||
// },
|
||||
// update: {
|
||||
// name: p.name,
|
||||
// tahun: p.tahun,
|
||||
// slug: p.slug,
|
||||
// deskripsi: p.deskripsi,
|
||||
// kolaborator: p.kolaborator,
|
||||
// },
|
||||
// create: {
|
||||
// id: p.id,
|
||||
// name: p.name,
|
||||
// tahun: p.tahun,
|
||||
// slug: p.slug,
|
||||
// deskripsi: p.deskripsi,
|
||||
// kolaborator: p.kolaborator,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Kolaborasi Inovasi seeded successfully");
|
||||
|
||||
// console.log("🔄 Seeding Mitra Kolaborasi...");
|
||||
// for (const p of mitraKolaborasi) {
|
||||
// await prisma.mitraKolaborasi.upsert({
|
||||
// where: {
|
||||
// id: p.id,
|
||||
// },
|
||||
// update: {
|
||||
// name: p.name,
|
||||
// imageId: p.imageId,
|
||||
// },
|
||||
// create: {
|
||||
// id: p.id,
|
||||
// name: p.name,
|
||||
// imageId: p.imageId,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Mitra Kolaborasi seeded successfully");
|
||||
await seedKolaborasiInovasi();
|
||||
|
||||
// // ==================== SUBMENU INFO TEKNOLOGI TEPAT GUNA ==========
|
||||
// console.log("🔄 Seeding Info Teknologi...");
|
||||
// for (const p of infoTeknologi) {
|
||||
// await prisma.infoTekno.upsert({
|
||||
// where: {
|
||||
// id: p.id,
|
||||
// },
|
||||
// update: {
|
||||
// name: p.name,
|
||||
// deskripsi: p.deskripsi,
|
||||
// imageId: p.imageId,
|
||||
// },
|
||||
// create: {
|
||||
// id: p.id,
|
||||
// name: p.name,
|
||||
// deskripsi: p.deskripsi,
|
||||
// imageId: p.imageId,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// console.log("✅ Info Teknologi seeded successfully");
|
||||
await seedInfoTeknologi();
|
||||
|
||||
// // ====================== MENU LINGKUNGAN ==========================
|
||||
// // ==================== SUBMENU PENGELOLAAN SAMPAH ==========
|
||||
|
||||
@@ -86,7 +86,7 @@ function Page() {
|
||||
return (
|
||||
<Paper p={'xl'} key={k}>
|
||||
<Stack gap={"xs"}>
|
||||
<Image src={v.image.link || ''} pb={10} radius={10} alt='' loading="lazy" />
|
||||
<Image src={v.image?.link || "/no-image.jpg"} pb={10} radius={10} alt='' loading="lazy" />
|
||||
<Title order={3} fw={'bold'} ta="left">
|
||||
{v.name}
|
||||
</Title>
|
||||
|
||||
@@ -147,7 +147,7 @@ function Page() {
|
||||
<Center mb="sm">
|
||||
{m.image?.link ? (
|
||||
<Image
|
||||
src={`${process.env.NEXT_PUBLIC_BASE_URL || ''}${m.image.link}`}
|
||||
src={m.image.link}
|
||||
alt={m.name}
|
||||
w={150}
|
||||
h={100}
|
||||
|
||||
Reference in New Issue
Block a user