Cloud Schema (PostgreSQL)
Cloud Hub menggunakan PostgreSQL 16 sebagai database utama. Halaman ini mendokumentasikan tabel-tabel kunci yang dikelompokkan per module.
Master Data (001_master_data.sql)
master_items -- Produk/SKU
| Column | Type | Deskripsi |
|---|---|---|
sku | TEXT PK | Kode SKU unik |
name | TEXT | Nama produk |
category_id | TEXT | FK ke categories |
brand | TEXT | Merek produk |
unit_of_measure | TEXT | Satuan (PCS, PACK, BOX) |
status | TEXT | active, inactive, discontinued |
version | INTEGER | Optimistic locking version |
master_barcodes -- Barcode Mapping
Maps barcode (EAN-13, UPC, Code128) ke SKU. Satu SKU bisa punya multiple barcodes.
master_epc_tags -- RFID EPC Mapping
Maps RFID EPC hex values ke SKU. Digunakan untuk RFID scanning di DC dan toko.
master_suppliers -- Supplier/Vendor
Data supplier termasuk kontak, alamat, NPWP, dan term pembayaran.
master_locations -- Toko & Gudang
Semua lokasi (toko, DC, kantor) dengan alamat dan konfigurasi.
master_categories -- Kategori Produk
Hierarki kategori dengan support parent-child (tree structure).
master_prices -- Harga Produk
Harga jual dan harga beli per SKU, dengan support harga per lokasi.
Identity (010_identity.sql)
identity_users
| Column | Type | Deskripsi |
|---|---|---|
id | TEXT PK | User ID (UUIDv7) |
username | TEXT UNIQUE | Username login |
display_name | TEXT | Nama tampilan |
password_hash | TEXT | Bcrypt hash |
pin_hash | TEXT | PIN hash untuk POS |
role | TEXT | cashier, store_manager, ho_finance, admin, dll |
store_id | TEXT | Toko yang di-assign |
permissions | TEXT | JSON array permissions tambahan |
active | BOOLEAN | Status aktif |
identity_refresh_tokens
Menyimpan refresh token yang aktif untuk JWT rotation.
Procurement (002_procurement.sql)
Tabel Utama
| Tabel | Fungsi |
|---|---|
purchase_orders | Header PO |
po_items | Line items PO |
goods_receipts | Record penerimaan barang |
gr_items | Detail item yang diterima |
supplier_evaluations | Score performa supplier |
Accounting (030_accounting.sql)
acct_fiscal_years -- Tahun Fiskal
Periode akuntansi dengan status open/closed.
acct_periods -- Periode Akuntansi
Sub-periode dalam tahun fiskal (bulanan).
acct_accounts -- Chart of Accounts
| Column | Type | Deskripsi |
|---|---|---|
id | TEXT PK | Account ID |
code | TEXT UNIQUE | Kode akun (e.g. "1-1100") |
name | TEXT | Nama akun |
account_type | TEXT | asset, liability, equity, revenue, expense |
parent_code | TEXT | Parent account untuk hierarki |
is_group | INTEGER | Header group vs detail account |
currency | TEXT | Default IDR |
acct_journals -- Jurnal Entries
Header jurnal dengan reference ke source document.
acct_journal_lines -- Detail Jurnal
Line items jurnal dengan debit/credit menggunakan NUMERIC(18,4).
acct_arap -- Accounts Receivable / Payable
Piutang dan hutang dengan aging tracking.
HR & Payroll (020_hr_ga.sql, 032_payroll.sql)
| Tabel | Fungsi |
|---|---|
hr_employees | Data karyawan lengkap |
hr_attendance | Record kehadiran harian |
hr_leave_requests | Pengajuan cuti |
hr_business_trips | Perjalanan dinas & reimbursement |
payroll_periods | Periode penggajian |
payroll_slips | Slip gaji per karyawan |
payroll_components | Komponen gaji (tunjangan, potongan) |
Tax (031_tax.sql)
| Tabel | Fungsi |
|---|---|
tax_rates | Tarif pajak (PPN 11%, dll) |
tax_invoices | Faktur pajak |
tax_invoice_items | Detail faktur pajak |
Commercial (003_commercial.sql)
| Tabel | Fungsi |
|---|---|
promotions | Aturan promosi |
promotion_rules | Kondisi dan aksi promosi |
price_lists | Daftar harga per channel |
margin_analysis | Analisis margin per SKU |
Store Operations (035_store_ops.sql)
| Tabel | Fungsi |
|---|---|
store_settlements | Settlement harian per toko |
store_daily_journals | Jurnal harian toko |
store_sync_status | Status sinkronisasi per toko |
Event Store
Cloud Hub juga menyimpan events yang diterima dari toko di event_store table untuk audit trail dan replay.