changes / ksr-sync

ksr-sync — Version Changelog

Versi aktif berikutnya: v0.5 (naik dari v0.4). Chat sama → jangan bump, update bullet saja.


v0.4 — 2026-08-12

  • Cursor watermark komposit "<iso>|<id>" + date_trunc milidetik di SQL — baris ber-timestamp kembar tidak lagi terlompati saat LIMIT memotong batch (fix presisi µs Postgres vs ms JS Date).
  • Drain loop per entitas (batch diulang sampai habis); dimensi selesai dulu sebelum fact — fix customer_id null permanen saat backfill.
  • Propagasi soft-delete: pass terpisah per entitas (*.deleted) menghapus baris ksrdb yang di-soft-delete di mpcdb; dim customer/branch dihapus setelah referensi fact di-null-kan.
  • GC hard-delete tiap putaran: baris ksrdb yang sumbernya hilang total dari mpcdb ikut dihapus (scan id-only).
  • Booking yang berubah ke status non-kunjungan (mis. Cancelled) dihapus dari fact_visit (status filter dipindah dari WHERE ke handler).
  • fact_transaction.branch_id diisi via transaction_items (Booking) → bookingscourts.branch_id; transaksi F&B murni tetap tanpa cabang.
  • Script npm run reconcile: bandingkan count (+ SUM amount transaksi) mpcdb vs ksrdb, exit 1 jika selisih — jaring pengaman untuk UPDATE tanpa updated_at.
  • README: cara kerja sync + panduan menambah bisnis baru (multi-industry, satu worker per bisnis).

v0.3 — 2026-08-11

  • Mirror Prisma ikut rename ksrdb owner_usersusers (migration 016); worker tetap tidak memakai tabel ini.

v0.2 — 2026-08-08

  • Mirror schema Prisma: tabel owner_users (auth mpc-owner; sync worker tidak memakainya).

v0.1 — 2026-08-08

  • Cron/worker: sync customers, transactions, visits (bookings), reviews, branches dari mpcdb → ksrdb.
  • Watermark incremental; BUSINESS_CODE=mpc.