schema / migration / 022-tip-reference-index

022 - Index for Tip lookups on transaction_items.reference_id

  • Tanggal: 2026-08-13
  • DB: mpcdb
  • Ringkas: Tambah index pada transaction_items.reference_id untuk mempercepat lookup "apakah order ini sudah pernah di-tip" (fitur Tip di booking history). Tidak ada kolom/tabel baru — Tip disimpan sebagai Transaction biasa (transaction_type='Tip') dengan satu TransactionItem (item_type='Fee', reference_id = id order yang di-tip).

ALTER (jalankan di DB server)

-- Idempotent; safe to re-run.
CREATE INDEX IF NOT EXISTS idx_transaction_items_reference_id
  ON transaction_items(reference_id);

Rollback (opsional)

DROP INDEX IF EXISTS idx_transaction_items_reference_id;

Catatan

  • Tidak ada perubahan kontrak data (tidak ada kolom baru) — mpc-admin, mpc-be-pos tidak terdampak.
  • "Sudah pernah tip?" dihitung on-the-fly: ada transaction_items dengan item_type='Fee' dan reference_id = <order_id> yang transactions induknya transaction_type='Tip' dan status='Completed'.
  • Response Transaction.tip_amount (response-only, tidak persisted) dihitung dari query ini di GET /transactions/customer/:id dan GET /transactions/:id.