# 🎯 GRAND TASK: Gastro Table Reservation SaaS (caspos Ecosystem) ## 1. Projektübersicht & Vision Entwicklung einer modernen, mandantenfähigen **Tischreservierungs-SaaS-Plattform für die Gastronomie**. - **Zielgruppe:** Gastronomiebetriebe (Einzelrestaurants bis Ketten). - **Fokus Phase 1:** Perfekte **UI/UX**, Dual-Auth-System (Admin vs. Kellner-PIN), grafischer 2D-Tischplan, Timeline und Schnellbuchung. - **Fokus Phase 2 (Später):** Kassenanbindung / POS-Integration an *caspos* via REST/Webhooks. --- ## 2. Tech-Stack & Architektur - **Infrastruktur & Container:** Docker Compose (`docker-compose.yml`) für lokales Setup und Cloud-Parität. - **Datenbank:** PostgreSQL 16 (Open Source, ACID, RLS, Flyway Migrationen). - **Architekturmodell:** **Hybrid Multi-Tenancy (Shared App + Database/Schema-per-Tenant)**. - Master-Schema: Mandanten, Lizenzen, Slugs, API-Keys. - Tenant-Schema: Tische, Bereiche, Reservierungen, Gäste, Staff. - **Backend:** Java 21 / Spring Boot 3.x (Spring Data JPA, Spring Security, Flyway, STOMP WebSockets). - **Frontend:** TypeScript, React (Next.js / Vite), Tailwind CSS, Zustand, Konva.js (2D-Canvas), Lucide Icons. --- ## 3. Kern-Domänenmodell (Tenant-Level) 1. **DiningArea:** Gastrobereiche (z. B. "Innenbereich", "Terrasse"). 2. **RestaurantTable:** Tische mit 2D-Koordinaten (`x`, `y`, `width`, `height`, `shape`), Min/Max-Kapazität und Kombinierbarkeit. 3. **Guest:** Gästedatei mit Kontaktdaten, Präferenzen/Notizen und No-Show-Counter. 4. **Reservation:** Reservierungsstatus (`PENDING`, `CONFIRMED`, `ARRIVED`, `FINISHED`, `NO_SHOW`, `CANCELLED`), Timeslots, Gästeanzahl. 5. **StaffUser:** Kellner/Manager mit Rollen und schneller PIN-Authentifizierung. --- ## 4. UI/UX Anforderungen (Gastro-Optimiert) 1. **Dual-Mode Auth:** - Inhaber/Manager: Langlebiger Login via E-Mail/Passwort (Portal). - Kellner/Terminal: 4-6 stelliger PIN-Schnellzugriff (am iPad/Terminal). - Gäste: Kein Account-Zwang für Online-Reservierungen. 2. **2D-Tischplan:** Farbcodierte Tische (Frei = Grün, Bald reserviert = Gelb, Belegt = Rot, Rechnung offen = Blau), Touch-Interaktionen. 3. **Timeline / Gantt:** Zeitstrahl nach Tischen im 15-Minuten-Raster. 4. **Quick-Booking / Walk-In:** Buchungserfassung für Kellner in unter 5 Sekunden. --- ## 5. Phasenplan (Roadmap) - [x] **Milestone 1:** Docker Compose & PostgreSQL 16 Setup mit Flyway & Sicherheitskonfiguration. - [ ] **Milestone 2:** Spring Boot 3 Multi-Tenant Backend (TenantContext, Hibernate Resolver, Auth-Modul mit PIN-Login). - [ ] **Milestone 3:** TypeScript Frontend-Basis (Typen, API-Client, Zustand-Stores). - [ ] **Milestone 4:** UI-Komponenten (2D Tischplan via Konva.js, Timeline, Quick-Booking-Modal). - [ ] **Milestone 5:** caspos POS REST-API & Webhook-Integration.