C. FLOW BISNIS (BUSINESS FLOW)
1. Flow Booking untuk User:
- a. Proses Booking:
- User login ke sistem
- User memilih menu "Buat Booking" atau dari landing page
- User memilih armada bus yang ingin dibooking
- User memilih rute perjalanan dan tanggal keberangkatan
- Sistem menampilkan kursi yang tersedia untuk armada bus dan tanggal tersebut
- User memilih kursi yang diinginkan
- User mengisi nama, nomor telepon, dan jumlah kursi
- User submit booking
- Sistem membuat booking dengan status "pending" dan expired_at = waktu sekarang + 2 menit
- Sistem mengubah status jadwal menjadi unavailable
- User diarahkan ke halaman administrasi booking
- b. Proses Pembayaran:
- Setelah booking dibuat, user dapat melakukan pembayaran
- User memilih booking yang ingin dibayar
- User memilih metode pembayaran (cash atau transfer)
- Jika transfer, user upload bukti pembayaran
- User submit pembayaran
- Sistem membuat payment dengan status "checked" (menunggu verifikasi admin)
- Status booking tetap "pending" sampai admin verifikasi
- c. Proses Verifikasi Pembayaran (Admin):
- Admin melihat daftar pembayaran yang perlu diverifikasi
- Admin memeriksa bukti pembayaran
- Admin mengubah status pembayaran:
- Jika "paid" → status booking menjadi "confirmed"
- Jika "failed" → status booking menjadi "canceled", kursi kembali tersedia
- Sistem otomatis mengupdate status booking
- d. Proses Expired Booking:
- Jika booking tidak dibayar dalam 2 menit, sistem otomatis:
- Mengubah status booking menjadi "canceled"
- Mengubah status kursi menjadi available kembali
- Menghapus tanggal dari jadwal
- Jika booking tidak dibayar dalam 2 menit, sistem otomatis:
- e. Proses Cancel Booking:
- User dapat membatalkan booking yang masih pending
- Sistem mengubah status booking menjadi "canceled"
- Sistem mengubah status kursi menjadi available kembali
- Sistem menghapus tanggal dari jadwal
2. Flow Manajemen Armada (Admin):
- Admin login ke dashboard
- Admin mengakses menu "Armada"
- Admin dapat:
- Menambah armada baru (jenis kendaraan, kapasitas, rute, harga per perjalanan)
- Melihat daftar armada
- Edit data armada
- Hapus armada
- View detail armada
3. Flow Manajemen Jadwal (Admin):
- Admin login ke dashboard
- Admin mengakses menu "Jadwal Perjalanan"
- Admin dapat:
- Menambah jadwal perjalanan untuk armada tertentu
- Mengatur hari (Senin-Minggu)
- Mengatur waktu keberangkatan dan kedatangan
- Mengatur ketersediaan armada
- Edit jadwal perjalanan
- Hapus jadwal perjalanan
4. Flow Manajemen Booking (Admin):
- Admin dapat melihat semua booking
- Admin dapat:
- Membuat booking baru untuk user tertentu
- Edit booking (mengubah armada, jadwal, status)
- Update status booking
- Hapus booking
- Ketika admin update status booking:
- Jika status menjadi "confirmed" → kursi tetap unavailable
- Jika status menjadi "completed" atau "canceled" → kursi kembali available