Lewati ke isi

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