Staff — POS pages
Each POS screen is a flat URL under PosShell. Content for most tabs is rendered by AdminPage; Müdavim has its own feature page wired through the same shell.
Role → page matrix
| Page | Path | Garson | Barkasa | Patron |
|---|---|---|---|---|
| Masalar | /masalar |
✓ | ✓ | ✓ |
| Ürünler | /urunler |
✓ | ||
| Adisyonlar | /checks |
✓ | ✓ | |
| Raporlar | /reports |
✓ | ✓ | |
| İşlem geçmişi | /islem-gecmisi |
✓ | ||
| Rezervasyon | /rezervasyon |
✓* | ✓* | |
| Müdavim | /mudavim |
✓ | ✓ | |
| Ayarlar | /ayarlar |
✓ |
*Requires reservation.manage.
Shared host behavior
- Tab id comes from the URL slug (
paths.ts), so refresh restores the same page. - Unauthorized tab URLs bounce to Masalar.
- Many floor mutations require an open business day; closed days show gates/overlays on Masalar.
- Live lists poll about every 10 seconds while relevant queries are active.
- Deep order work (approve, pay, add items, flags) opens dialogs from Masalar and reuses permission checks from Auth & roles.
Page docs
- Masalar — live floor
- Ürünler — catalog
- Adisyonlar — calendar-day checks
- Raporlar — business day & export
- İşlem geçmişi — audit
- Rezervasyon — bookings
- Müdavim — house accounts
- Ayarlar — settings & personnel