diff --git a/.agents/grand_task.md b/.agents/grand_task.md new file mode 100644 index 0000000..081ed97 --- /dev/null +++ b/.agents/grand_task.md @@ -0,0 +1,47 @@ +# 🎯 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.