Knowledge Base
Quick reference dan analogi sederhana untuk memahami struktur data dan relasi antar entity.ποΈ Product Domain
Analogi Sederhana
Bayangkan product seperti βmobil utamaβ:| Entity | Analogi | Fungsi |
|---|---|---|
| product | Mobil utama | Master product data |
| product_variants | Warna/tipe mobil | Variasi dari product (size, color, dll) |
| product_prices | Harga di tiap dealer | Price list per branch/customer type |
| product_suppliers | Vendor yang supply sparepart | Supplier mapping |
| product_inventory | Stok fisik di gudang | Inventory allocation |
| product_addons | Aksesoris tambahan | Add-ons (topping, extra) |
| product_accounts | Mapping ke akun keuangan | Chart of accounts mapping |
| product_trials | Mobil prototype/trial | Trial products sebelum dijual massal |
Relasi Product
π° Transaction Domain
Tabel Inti (Wajib)
transactions- Fungsi: Header transaksi (waktu, kasir, outlet/cabang, total, metode bayar, status)
- Kolom kunci:
id,transaction_date,branch_id,cashier_id,total_amount,payment_method,status,deleted_at
- Fungsi: Detail item per transaksi (qty, harga, subtotal)
- Kolom kunci:
transaction_id,product_id,quantity,price,subtotal,deleted_at
Tabel Referensi (Direkomendasikan)
users- Tujuan: Ambil nama kasir
- Join:
users.id = transactions.cashier_id
- Tujuan: Nama outlet/cabang
- Join:
branches.id = transactions.branch_id
- Tujuan: Nama metode bayar dari
transactions.payment_method(kode) - Join:
payment_methods.code = transactions.payment_method
Tabel Opsional (Sesuai Kebutuhan)
cashier_shifts- Tujuan: Filter transaksi berdasarkan shift yang sedang/tertentu
- Contoh: Transaksi dalam rentang
start_timeβend_timeuntukuser_iddanbranch_idtertentu
- Tujuan: Jika ada add-on per item (tambahan topping/variant) dan ingin dihitung/ditampilkan
- Tujuan: Jejak jurnal/komponen nilai (mis. potongan/pajak) bila ingin breakdown akuntansi per transaksi
Kunci Join Utama
Indeks yang Direkomendasikan
transactions: Indeks gabungan sesuai filter UI kasir(transaction_date)(branch_id)(cashier_id)(status)(payment_method)(deleted_at)
(transaction_id)
payment_methods: (code)
users: (id)
branches: (id)
π¦ Inventory Domain
Warehouse Hierarchy
Stock Tracking
Source of Truth:warehouse_stocks table
Movement Types
| Type | Direction | Description |
|---|---|---|
purchase_receipt | IN (+) | Penerimaan pembelian |
sales_issue | OUT (-) | Pengeluaran penjualan |
return_in | IN (+) | Return dari customer |
return_out | OUT (-) | Return ke supplier |
adjustment | IN/OUT | Penyesuaian manual |
stock_opname_adj | IN/OUT | Stock opname adjustment |
production_issue | OUT (-) | Issue bahan baku produksi |
production_receipt | IN (+) | Receipt hasil produksi |
transfer_out | OUT (-) | Transfer keluar ke warehouse lain |
transfer_in | IN (+) | Transfer masuk dari warehouse lain |
π Authentication & Authorization
JWT Token Structure
Role Hierarchy
Permission Mapping
| Role | Permissions |
|---|---|
| admin | All permissions |
| manager | Branch management, reports, user management |
| supervisor | Transaction approval, shift management |
| cashier | Create transaction, view own transactions |
| warehouse_staff | Inventory management, stock movement |
| accountant | View reports, journal entries |
π³ Payment Methods
Payment Method Codes
| Code | Name | Type | Requires Gateway |
|---|---|---|---|
CASH | Cash | Offline | No |
QRIS | QRIS | Online | Yes (Xendit) |
DEBIT | Debit Card | Online | Yes (Xendit) |
CREDIT | Credit Card | Online | Yes (Xendit) |
OVO | OVO | Online | Yes (Xendit) |
GOPAY | GoPay | Online | Yes (Xendit) |
DANA | DANA | Online | Yes (Xendit) |
SHOPEEPAY | ShopeePay | Online | Yes (Xendit) |
Payment Status Flow
π Reporting Queries
Daily Sales Report
Top Selling Products
Stock Movement Summary
π§ Common Patterns
Soft Delete Pattern
Pagination Pattern
Transaction Pattern
π Related Documentation
Database ERD
Complete database schema
Internal Flow Diagrams
Handler & service flow diagrams
API Spec Template
API specification templates
AI Assistant Reference: Dokumentasi ini dioptimalkan untuk AI assistant context dan developer quick reference.