docs(architecture): add grand_task.md specification

This commit is contained in:
DanielS
2026-08-19 00:07:07 +02:00
parent 0ef67e13a2
commit 142350c88a

47
.agents/grand_task.md Normal file
View File

@@ -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.