update
This commit is contained in:
18
CLAUDE.md
18
CLAUDE.md
@@ -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
|
||||
```
|
||||
|
||||
@@ -33,11 +33,11 @@ CategoryManager::updateCategory() — Kategorie aktualisieren
|
||||
CategoryManager::deleteCategory() — Kategorie löschen
|
||||
|
||||
TaskManager::updateTask() — Task aktualisieren (Name, Kategorie, Status, Datum)
|
||||
TaskManager::toggleTaskStatus() — Task-Status umschalten (aktiv↔erledigt)
|
||||
TaskManager::deleteTask() — Task löschen
|
||||
|
||||
TaskSchemaManager::createSchema() — Neues Schema anlegen
|
||||
TaskSchemaManager::updateSchema() — Schema aktualisieren + Tasks synchronisieren
|
||||
TaskSchemaManager::toggleTaskStatus() — Task-Status umschalten (aktiv↔erledigt)
|
||||
TaskSchemaManager::deleteSchema() — Schema löschen
|
||||
|
||||
TaskGenerator::generateForRange() — Fehlende Tasks für einen Zeitraum erzeugen
|
||||
@@ -83,16 +83,16 @@ TaskSchemaType — Wiederholungstyp (einzel, taeglich, multi, woechentlich, mona
|
||||
|
||||
CategoryRepository — Standard Doctrine-Repository (keine eigenen Methoden)
|
||||
|
||||
TaskRepository::findByTaskAndDate() — Task anhand Schema und Datum finden
|
||||
TaskRepository::findBySchemaAndDate() — Task anhand Schema und Datum finden
|
||||
TaskRepository::findInRange() — Alle Tasks in einem Zeitraum (ohne inaktive Schemas)
|
||||
TaskRepository::getExistingKeys() — Set aus "schemaId-YYYY-MM-DD" Keys für existierende Tasks
|
||||
TaskRepository::findByTaskFromDate() — Tasks eines Schemas ab einem Datum
|
||||
TaskRepository::deleteFutureByTask() — Zukünftige Tasks eines Schemas löschen
|
||||
TaskRepository::deleteFutureActive() — Zukünftige aktive Tasks eines Schemas löschen
|
||||
TaskRepository::findBySchemaFromDate() — Tasks eines Schemas ab einem Datum
|
||||
TaskRepository::deleteFutureBySchema() — Zukünftige Tasks eines Schemas löschen
|
||||
TaskRepository::deleteFutureActiveBySchema() — Zukünftige aktive Tasks eines Schemas löschen
|
||||
TaskRepository::findAllSorted() — Alle Tasks mit Datum, sortiert nach Datum absteigend
|
||||
TaskRepository::findWithoutDate() — Alle aktiven Tasks ohne Datum, sortiert nach Erstellung
|
||||
|
||||
TaskSchemaRepository::findActiveTasksInRange() — Aktive Schemas in einem Zeitraum finden
|
||||
TaskSchemaRepository::findActiveSchemasInRange() — Aktive Schemas in einem Zeitraum finden
|
||||
|
||||
# Migration
|
||||
|
||||
@@ -101,3 +101,4 @@ Version20260324141105 — Erstellt task_completion-Tabelle mit Unique-Constraint
|
||||
Version20260324154816 — Ersetzt task_completion durch task_occurrence, migriert Daten
|
||||
Version20260325064344 — Ergänzt name, category_overridden, category_id auf task_occurrence
|
||||
Version20260326165702 — Benennt task→task_schema und task_occurrence→task um
|
||||
Version20260330210659 — Ergänzt year_days, created_at; entfernt interval_type; passt Indizes an
|
||||
|
||||
Reference in New Issue
Block a user