5. Meja & Reservasi
Kasgo F&B punya 2 fitur terkait pengelolaan tempat duduk:
- Manajemen Meja โ daftar fisik meja di toko (akses via Pengaturan โ Manajemen Meja)
- Reservasi โ booking meja untuk tanggal/jam tertentu (menu utama di home, icon teal kalender)
A. Manajemen Meja
Akses: Pengaturan โ Manajemen Meja. Halaman ini berisi daftar meja fisik di toko Anda. Saat awal, halaman kosong dengan empty state "Belum ada meja".

Tambah Meja:
- Tap tombol + di pojok kanan atas โ halaman Tambah Meja
- Isi field:
- Nomor Meja * (wajib) โ "1", "2", "A1", "VIP-1", dll
- Nama Meja (Opsional) โ "Pojok", "VIP", "Dekat Jendela"
- Kapasitas (Kursi) โ jumlah kursi (default 4)
- Area (Opsional) โ "Indoor", "Outdoor", "Lantai 2", dll
- Tap Simpan (hijau)

Daftar Meja & Status:
Setelah tersimpan, meja muncul di list dengan badge status. Aplikasi pakai 2 status berbahasa Indonesia:


- Tersedia (hijau) โ meja kosong, siap dipakai untuk order Dine-in baru atau di-reservasi
- Terisi (merah) โ meja sedang dipakai (ada order Dine-in aktif, atau reservasi sudah Duduk)
Edit / Hapus Meja:
- Tap card meja โ halaman Edit Meja dengan field yang sama โ Simpan Perubahan
- Tap ikon ๐๏ธ (trash merah) di kanan card โ konfirmasi โ meja terhapus

โ ๏ธ Keterbatasan saat ini:
- Tidak ada denah/layout visual โ meja hanya ditampilkan sebagai list
- Tidak ada fitur Gabung Meja โ kalau tamu rame, workaround pakai 1 meja besar atau order terpisah
- Tidak ada Move Order antar meja โ kalau tamu pindah, edit manual di Pesanan Terbuka
B. Assign Meja ke Pesanan Dine-in
Saat buat order tipe Dine-in di kasir, customer wajib pilih meja. Setelah order disimpan atau pembayaran diproses, status meja otomatis berubah dari Tersedia โ Terisi.
Flow:
- Kasir order โ pilih tipe Dine-in
- Di Step 1 Konfirmasi Pembayaran, isi field Nomor Meja (pilih dari meja yang Tersedia)
- Tap Simpan Pesanan (Pesanan Terbuka) atau Lanjut ke Pembayaran
- Status meja: Tersedia โ Terisi
- Selesai transaksi atau hapus Pesanan Terbuka โ status balik ke Tersedia
Tips: Satu meja bisa punya 1 Pesanan Terbuka aktif dalam satu waktu. Kalau pesan tambahan datang dari meja yang sudah Terisi, buka Pesanan Terbuka yang ada dan tambahkan item ke sana (bukan bikin order baru).
C. Reservasi (Booking Meja)
Reservasi = pelanggan booking meja untuk tanggal/jam tertentu. Cocok untuk restoran yang sering menerima grup atau booking hari spesial. Akses dari menu utama home: Reservasi (icon teal kalender).

Buat Reservasi Baru:
- Tap + di header โ halaman Buat Reservasi
- Section Data Pelanggan:
- Nama Pelanggan *
- Nomor HP (Opsional)
- Atau tap ๐ Cari Pelanggan untuk pilih dari database pelanggan existing
- Section Detail Reservasi:
- Tanggal (date picker)
- Jam (time picker)
- Jumlah Tamu (default 2)
- Pilih Meja โ buka halaman Pilih Meja dengan list meja Tersedia (kapasitasnya cukup)
- Catatan (Opsional) โ "dekat jendela", "vegetarian", "high chair", dll
- Tap ๐พ Simpan Reservasi (teal)


D. Status Reservasi & Workflow
Reservasi yang baru dibuat akan melalui beberapa tahap status. Aplikasi pakai label berbahasa Indonesia. Setiap status punya 1-2 tombol aksi yang relevan.
| Status | Warna | Arti | Tombol Aksi |
|---|---|---|---|
| Menunggu | Oranye | Baru dibuat, belum dikonfirmasi staff | Batalkan / โ Konfirmasi |
| Dikonfirmasi | Biru | Staff sudah konfirmasi, tunggu kedatangan | Batalkan / ๐ช Tamu Datang |
| Duduk | Hijau | Tamu datang & duduk โ meja jadi Terisi | Batalkan / โ Selesai |
| Selesai | โ | Tamu sudah pulang โ meja balik Tersedia | (final, hilang dari tab Aktif) |
| Dibatalkan | โ | Reservasi dibatalkan dari tahap manapun | (final) |



Update Status:
- Buka daftar Reservasi (default tab Aktif)
- Cari reservasi yang dimaksud (atau search by nama/meja/no.HP)
- Tap tombol aksi yang sesuai โ sistem auto-update status & status meja terkait
๐ Sinkronisasi dengan Meja:
Saat reservasi mencapai Duduk, status meja yang dipilih otomatis berubah jadi Terisi. Saat reservasi Selesai atau Dibatalkan, meja kembali Tersedia. Tidak perlu update manual โ workflow di Reservasi otomatis kelola Meja.
E. Filter & Tab Reservasi
3 tab di halaman Reservasi:
- Aktif (default) โ reservasi yang masih berjalan (Menunggu, Dikonfirmasi, Duduk)
- Hari Ini โ reservasi untuk tanggal hari ini saja
- Semua โ semua reservasi termasuk yang sudah Selesai & Dibatalkan
Search: cari berdasarkan nama pelanggan, nomor meja, atau nomor HP.
โ ๏ธ Keterbatasan:
- Tidak ada auto-notifikasi via WhatsApp/SMS โ konfirmasi ke pelanggan harus manual
- Tidak ada time slot management (kapasitas per jam) โ sistem hanya cek meja Tersedia, bukan jadwal overlap
- Tidak ada kalender view visual โ hanya list yang difilter via tab