Sentra Service — Booking & Queue Module¶
Sistem SentraService Book memadukan jalur antrean janji temu online yang teratur dengan sistem pendaftaran walk-in langsung di lokasi.
9.1 Alur Koordinasi Booking Online vs Walk-in¶
sequenceDiagram
actor C as Customer (Online/Walk-in)
participant POS as Frontdesk Calendar UI
participant RL as Redis Redlock Broker
participant PG as Payment Gateway (QRIS)
participant WA as WhatsApp Gateway
alt Pemesanan Online
C->>POS: 1. Pilih Layanan, Jam, & Staf
POS->>RL: 2. Request Kunci Slot Waktu (Redis Lock)
RL-->>POS: Lock Token Valid (10 Menit)
POS->>PG: 3. Generate Nominal DP Transaksi
PG-->>C: Tampilkan QRIS DP
C->>PG: 4. Pembayaran DP Sukses
PG->>POS: Webhook: Terbayar Lunas
POS->>RL: Rilis Kunci Redis (Set Status CONFIRMED)
POS->>WA: Picu Kirim WA Notifikasi Sukses Booking
else Kunjungan Walk-in (Tanpa Booking)
C->>POS: Datang Langsung ke Meja Resepsionis
POS->>POS: Cari Staf Kosong & Cek Sisa Slot Hari Ini
POS->>POS: Masukkan Pelanggan ke Antrian Aktif Toko
POS-->>C: Cetak Kertas Nomor Antrian (Thermal)
end
9.2 Redis Slot Locking Protocol¶
- Key format:
appointment:lock:branch_{id}:staff_{id}:{date}T{time} - TTL: 600 detik (10 menit) — cukup untuk pelanggan menyelesaikan pembayaran DP
- Jika lock diperoleh (
OK): slot dikunci, lanjut ke payment QRIS - Jika lock gagal (
nil): respon langsung "Slot sedang dipesan orang lain" - Lock dilepas otomatis (expire) atau dirilis manual setelah pembayaran sukses
9.3 WhatsApp Reminder Scheduler¶
- H-24: Reminder konfirmasi kehadiran dikirim WA
- H-2 jam: Reminder terakhir sebelum jadwal
- On No-Show: 15 menit lewat tanpa check-in → status
LATE_STANDBY, WA konfirmasi dikirim. Tanpa respon 5 menit →NO_SHOW, slot dibebaskan ke waiting list