This commit is contained in:
Marek Lenczewski
2026-03-30 23:10:30 +02:00
parent 7b58e68ecb
commit f9a9004fcd
2 changed files with 15 additions and 16 deletions

View File

@@ -54,23 +54,20 @@ backend/src/
TaskSchemaController.php — Schema CRUD + week view + toggle
DTO/
Request/ — CreateSchemaRequest, UpdateSchemaRequest, UpdateTaskRequest,
ToggleRequest, CreateCategoryRequest, UpdateCategoryRequest
ToggleRequest, CreateCategoryRequest, UpdateCategoryRequest,
SchemaValidationTrait
Response/ — TaskResponse, CategoryResponse, WeekViewResponse,
DayResponse, ToggleResponse
Entity/
Category.php, Task.php, TaskSchema.php
Enum/
TaskStatus.php, TaskSchemaStatus.php, TaskSchemaType.php
Exception/
ValidationException.php — Wraps ConstraintViolationList, handled by ExceptionListener
EventListener/
ExceptionListener.php — Fängt ValidationException, erzeugt JSON 422
Repository/
CategoryRepository.php, TaskRepository.php, TaskSchemaRepository.php
Service/
CategoryManager.php — Category CRUD-Logik
TaskManager.php — Task Update/Delete
TaskSchemaManager.php — Schema CRUD + Toggle + Sync-Auslösung
TaskManager.php — Task Update/Delete/Toggle
TaskSchemaManager.php — Schema CRUD + Sync-Auslösung
TaskGenerator.php — Erzeugt Task-Instanzen für Zeiträume
TaskSynchronizer.php — Sync nach Schema-Update (löschen/erstellen/reset)
DeadlineCalculator.php — Berechnet Fälligkeitsdaten für ein Schema
@@ -153,7 +150,7 @@ frontend/src/
- **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
- **Validierung**: Auf Request-DTOs, nicht auf Entities
- **Error-Handling**: `ValidationException` → ExceptionListener → JSON 422; `HttpException` → Symfony built-in
- **Error-Handling**: `HttpException` → Symfony built-in
- **Frontend**: Vue 3 Composition API mit `<script setup>`, fetch-basierter API-Client
## Development
@@ -167,9 +164,10 @@ ddev exec "cd backend && php bin/console cache:clear"
ddev exec "cd backend && php bin/console doctrine:migrations:migrate --no-interaction"
# Frontend
cd frontend && npm run dev
ddev exec "cd frontend && npm install"
ddev exec "cd frontend && npm run dev -- --host 0.0.0.0"
# URLs
Frontend: https://haushalt.ddev.site:5174
Frontend: https://haushalt.ddev.site:5173
API: https://haushalt.ddev.site/api
```