diff --git a/CLAUDE.md b/CLAUDE.md index cff7395..d5f4e7a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -41,8 +41,7 @@ Controller → Service (Manager) → Repository → Entity - Manager-Services: Geschäftslogik (CRUD, Validierung, Toggle) - DTOs: typisierter Input (Request) und Output (Response) - Validierung: nur auf Request-DTOs (`#[Assert\...]`), nicht auf Entities -- Exceptions: `ValidationException` (eigener Listener), `HttpException` (Symfony built-in) -- Entities: nur Doctrine-Mapping + Getter/Setter +- Entities: Doctrine-Mapping + Getter/Setter + berechnete Felder via Serializer-Groups ## Verzeichnisstruktur (Backend) @@ -56,8 +55,7 @@ backend/src/ Request/ — CreateSchemaRequest, UpdateSchemaRequest, UpdateTaskRequest, ToggleRequest, CreateCategoryRequest, UpdateCategoryRequest, SchemaValidationTrait - Response/ — TaskResponse, CategoryResponse, WeekViewResponse, - DayResponse, ToggleResponse + Response/ — WeekViewResponse, DayResponse, ToggleResponse Entity/ Category.php, Task.php, TaskSchema.php Enum/ @@ -72,7 +70,6 @@ backend/src/ TaskSynchronizer.php — Sync nach Schema-Update (löschen/erstellen/reset) DeadlineCalculator.php — Berechnet Fälligkeitsdaten für ein Schema TaskViewBuilder.php — Baut Wochenansicht + Alle-Aufgaben-View - TaskSerializer.php — Task/Category → Response-DTOs ``` ## API-Routen @@ -148,7 +145,7 @@ frontend/src/ - **Sprache Code**: Englisch (Klassen, Methoden, Variablen, CSS-Klassen) - **Sprache UI**: Deutsch (Labels, Fehlermeldungen, Platzhalter) - **Enum-Werte**: Deutsch in DB (`aktiv`, `erledigt`, `einzel` etc.), Englisch als PHP-Case-Namen (`Active`, `Completed`, `Single`) -- **API-Serialisierung**: Symfony Serializer-Groups für Schema/Category Entities (`schema:read`, `schema:write`, `category:read`, `category:write`), TaskSerializer-Service für Tasks +- **API-Serialisierung**: Symfony Serializer-Groups auf allen Entities (`schema:read`, `task:read`, `category:read`) - **Validierung**: Auf Request-DTOs, nicht auf Entities - **Error-Handling**: `HttpException` → Symfony built-in - **Frontend**: Vue 3 Composition API mit `