Arsitektur Teknis Unit Kuliner & Pujasera
Updated: Sep 2026Oleh: SystemModul Unit Kuliner & Pujasera
Arsitektur Teknis: Unit Kuliner & F&B
Dokumentasi rancang bangun teknis untuk modul POS Kasir, Kafe, dan Pujasera BUMDes.
1. Skema Database (ERD)#
Modul F&B ini merupakan mini-ERP manufaktur.
fnb_products: Tabel menu kafe (Kopi, Nasi Goreng). Kolom khusus:is_recipe(Boolean).fnb_recipes&fnb_recipe_ingredients: Tabel Bill of Materials (BOM). Menyimpan komposisi (misal: 1 porsi Kopi = 15g Biji Kopi + 20ml Gula).inventory_items: Tabel bahan baku mentah (gudang).tenant_stalls(Lapak Warga): Tabel untuk menyimpan profil warga PKK penyewa lapak beserta skema sewanya (Flat/Bagi Hasil).pos_transactions&pos_transaction_lines: Tabel histori nota kasir. Mengandung informasitenant_idjika menu yang dijual berasal dari lapak warga.
2. API & Backend Services#
Server Action: processPOSCheckout(cartItems): Aksi krusial. Saat kasir menekan "Bayar", fungsi ini akan:
- Mencatat uang masuk.
- Mengecek apakah item adalah menu warga (Panggil
triggerTenantSplitJournal). - Mengecek apakah item adalah menu Cafe dengan resep (Panggil
reduceInventoryBasedOnRecipe).
CRON Job: GenerateTenantInvoices: Task berjalan setiap tanggal 28 setiap bulannya untuk membuat tagihan sewa lapak bulan depan ke warga (Skema Flat).
3. Komponen UI (Front-End)#
POSGridClient.tsx(Client Component): Layar interaktif kasir. Dioptimalkan untuk Tablet (Touch Screen). Menggunakan Zustand untuk state keranjang belanja (cart).KitchenDisplay.tsx(Client/Realtime Component): Membutuhkan Supabase Realtime langganan ke tabelpos_transactions. Setiap ada pesanan masuk, layar di dapur akan otomatis "Ting!" memunculkan antrean tiket masak baru tanpa perlu refresh halaman.