refactor(ekonomi): consolidate Pasar Desa into UMKM module
- Remove "Pasar Desa" as a separate entity; products are now strictly linked to UMKM. - Delete redundant Pasar Desa API endpoints and state management. - Update Admin UI: remove "Pasar Desa" menu and unified product management under UMKM. - Update Public UI: replace "Pasar Desa" with "UMKM" in navbar and unified hub at /darmasaba/ekonomi/umkm. - Implement mandatory umkmId in PasarDesa model and update seeders accordingly. - Fix UI bugs, missing imports, and invalid API filters for mandatory umkmId. - Increment version to 0.1.18.
This commit is contained in:
@@ -25,8 +25,11 @@ export async function seedPasarDesa() {
|
||||
|
||||
console.log("🔄 Seeding Pasar Desa...");
|
||||
|
||||
let i = 1;
|
||||
for (const p of pasarDesa) {
|
||||
let imageId: string | null = null;
|
||||
const umkmId = `umkm-${i}`; // Map to umkm-1, umkm-2, etc.
|
||||
i = (i % 4) + 1;
|
||||
|
||||
if (p.imageName) {
|
||||
const image = await prisma.fileStorage.findUnique({
|
||||
@@ -54,6 +57,7 @@ export async function seedPasarDesa() {
|
||||
kontak: p.kontak,
|
||||
imageId,
|
||||
kategoriProdukId: p.kategoriProdukId,
|
||||
umkmId: umkmId,
|
||||
},
|
||||
create: {
|
||||
id: p.id,
|
||||
@@ -65,6 +69,7 @@ export async function seedPasarDesa() {
|
||||
kontak: p.kontak,
|
||||
imageId,
|
||||
kategoriProdukId: p.kategoriProdukId,
|
||||
umkmId: umkmId,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
67
prisma/_seeder_list/ekonomi/seed_umkm.ts
Normal file
67
prisma/_seeder_list/ekonomi/seed_umkm.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export const umkmData = [
|
||||
{
|
||||
id: "umkm-1",
|
||||
nama: "Warung Pasar Darmasaba",
|
||||
pemilik: "Pak Made",
|
||||
deskripsi: "Warung tradisional kebutuhan pokok",
|
||||
alamat: "Pasar Desa Darmasaba",
|
||||
kontak: "081234567890",
|
||||
kategoriId: "5c06chf7-123f-7igd-0663-5e9h76e55060"
|
||||
},
|
||||
{
|
||||
id: "umkm-2",
|
||||
nama: "Jajanan Pasar Bu Made",
|
||||
pemilik: "Bu Made",
|
||||
deskripsi: "Spesialis jajanan tradisional Bali",
|
||||
alamat: "Pasar Desa Darmasaba",
|
||||
kontak: "082145678901",
|
||||
kategoriId: "4b95bge6-012e-5ged-9552-4d8g65d44959"
|
||||
},
|
||||
{
|
||||
id: "umkm-3",
|
||||
nama: "Sayur Segar Pak Wayan",
|
||||
pemilik: "Pak Wayan",
|
||||
deskripsi: "Sayuran lokal segar setiap hari",
|
||||
alamat: "Pasar Desa Darmasaba",
|
||||
kontak: "087865432109",
|
||||
kategoriId: "5c06chf7-123f-8jhe-0663-5e9h76e55060"
|
||||
},
|
||||
{
|
||||
id: "umkm-4",
|
||||
nama: "Ayam & Daging Segar Darmasaba",
|
||||
pemilik: "Pak Ketut",
|
||||
deskripsi: "Daging ayam dan sapi segar",
|
||||
alamat: "Pasar Desa Darmasaba",
|
||||
kontak: "081998877665",
|
||||
kategoriId: "5c06chf7-123f-9kif-0663-5e9h76e55060"
|
||||
}
|
||||
];
|
||||
|
||||
export async function seedUmkm() {
|
||||
console.log("🔄 Seeding UMKM...");
|
||||
for (const u of umkmData) {
|
||||
await prisma.umkm.upsert({
|
||||
where: { id: u.id },
|
||||
update: {
|
||||
nama: u.nama,
|
||||
pemilik: u.pemilik,
|
||||
deskripsi: u.deskripsi,
|
||||
alamat: u.alamat,
|
||||
kontak: u.kontak,
|
||||
kategoriId: u.kategoriId,
|
||||
},
|
||||
create: {
|
||||
id: u.id,
|
||||
nama: u.nama,
|
||||
pemilik: u.pemilik,
|
||||
deskripsi: u.deskripsi,
|
||||
alamat: u.alamat,
|
||||
kontak: u.kontak,
|
||||
kategoriId: u.kategoriId,
|
||||
},
|
||||
});
|
||||
}
|
||||
console.log("✅ UMKM seeded successfully");
|
||||
}
|
||||
@@ -1434,8 +1434,8 @@ model PasarDesa {
|
||||
|
||||
// Data Stok & UMKM
|
||||
stok Int @default(0)
|
||||
umkm Umkm? @relation(fields: [umkmId], references: [id])
|
||||
umkmId String?
|
||||
umkm Umkm @relation(fields: [umkmId], references: [id])
|
||||
umkmId String
|
||||
|
||||
// Relasi Penjualan
|
||||
penjualan PenjualanProduk[]
|
||||
|
||||
@@ -23,6 +23,7 @@ import { seedPendudukUsiaKerjaYangMenganggur } from "./_seeder_list/ekonomi/seed
|
||||
import { seedProgramKemiskinan } from "./_seeder_list/ekonomi/seed_program_kemiskinan";
|
||||
import { seedSektorUnggulanDesa } from "./_seeder_list/ekonomi/seed_sektor_unggulan_desa";
|
||||
import { seedStrukturBumdes } from "./_seeder_list/ekonomi/seed_struktur_bumdes";
|
||||
import { seedUmkm } from "./_seeder_list/ekonomi/seed_umkm";
|
||||
import { seedAjukan } from "./_seeder_list/inovasi/seed_ajukan";
|
||||
import { seedDesaDigital } from "./_seeder_list/inovasi/seed_desa_digital";
|
||||
import { seedInfoTeknologi } from "./_seeder_list/inovasi/seed_info_teknologi";
|
||||
@@ -274,6 +275,9 @@ import seedAssets from "./seed_assets";
|
||||
await seedKeamananLingkungan();
|
||||
|
||||
// // ====================== MENU EKONOMI ========================
|
||||
// // ==================== SUBMENU UMKM ==========================
|
||||
await seedUmkm();
|
||||
|
||||
// // ==================== SUBMENU PASAR DESA ====================
|
||||
await seedPasarDesa();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user