feat(ekonomi): unify UMKM and Pasar Desa models, add business profile and product forms

This commit is contained in:
2026-04-21 15:19:57 +08:00
parent a2d157ee02
commit e286cb4f2b
22 changed files with 586 additions and 80 deletions

View File

@@ -107,7 +107,6 @@ model FileStorage {
MusikDesaAudio MusikDesa[] @relation("MusikAudioFile")
MusikDesaCover MusikDesa[] @relation("MusikCoverImage")
UmkmImage Umkm[] @relation("UmkmImage")
ProdukUmkmImage ProdukUmkm[] @relation("ProdukUmkmImage")
}
//========================================= MENU LANDING PAGE ========================================= //
@@ -1428,14 +1427,24 @@ model PasarDesa {
image FileStorage? @relation(fields: [imageId], references: [id])
imageId String?
harga Int
rating Float
alamatUsaha String
kontak String
rating Float @default(0)
alamatUsaha String? // Opsional, bisa ambil dari UMKM
kontak String? // Opsional, bisa ambil dari UMKM
deskripsi String?
// Data Stok & UMKM
stok Int @default(0)
umkm Umkm? @relation(fields: [umkmId], references: [id])
umkmId String?
// Relasi Penjualan
penjualan PenjualanProduk[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime @default(now())
deletedAt DateTime?
isActive Boolean @default(true)
kategoriProduk KategoriProduk @relation(fields: [kategoriProdukId], references: [id])
kategoriProdukId String
KategoriToPasar KategoriToPasar[]
@@ -1446,7 +1455,7 @@ model KategoriProduk {
nama String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime @default(now())
deletedAt DateTime?
isActive Boolean @default(true)
KategoriToPasar KategoriToPasar[]
PasarDesa PasarDesa[]
@@ -2429,39 +2438,22 @@ model Umkm {
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
produk ProdukUmkm[]
}
model ProdukUmkm {
id String @id @default(cuid())
nama String
harga Int
stok Int @default(0)
deskripsi String?
image FileStorage? @relation("ProdukUmkmImage", fields: [imageId], references: [id])
imageId String?
umkm Umkm @relation(fields: [umkmId], references: [id])
umkmId String
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
penjualan PenjualanProduk[]
produk PasarDesa[]
}
model PenjualanProduk {
id String @id @default(cuid())
produk ProdukUmkm @relation(fields: [produkId], references: [id])
id String @id @default(cuid())
produk PasarDesa @relation(fields: [produkId], references: [id])
produkId String
jumlah Int
hargaSatuan Int // snapshot harga saat transaksi, agar histori tetap akurat
totalNilai Int // hargaSatuan * jumlah
tanggal DateTime @default(now())
periode String // format "YYYY-MM" untuk grouping bulanan
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
hargaSatuan Int // snapshot harga saat transaksi, agar histori tetap akurat
totalNilai Int // hargaSatuan * jumlah
tanggal DateTime @default(now())
periode String // format "YYYY-MM" untuk grouping bulanan
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
isActive Boolean @default(true)
isActive Boolean @default(true)
@@index([periode])
@@index([produkId])