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
|
TaskSchemaController.php — Schema CRUD + week view + toggle
|
||||||
DTO/
|
DTO/
|
||||||
Request/ — CreateSchemaRequest, UpdateSchemaRequest, UpdateTaskRequest,
|
Request/ — CreateSchemaRequest, UpdateSchemaRequest, UpdateTaskRequest,
|
||||||
ToggleRequest, CreateCategoryRequest, UpdateCategoryRequest
|
ToggleRequest, CreateCategoryRequest, UpdateCategoryRequest,
|
||||||
|
SchemaValidationTrait
|
||||||
Response/ — TaskResponse, CategoryResponse, WeekViewResponse,
|
Response/ — TaskResponse, CategoryResponse, WeekViewResponse,
|
||||||
DayResponse, ToggleResponse
|
DayResponse, ToggleResponse
|
||||||
Entity/
|
Entity/
|
||||||
Category.php, Task.php, TaskSchema.php
|
Category.php, Task.php, TaskSchema.php
|
||||||
Enum/
|
Enum/
|
||||||
TaskStatus.php, TaskSchemaStatus.php, TaskSchemaType.php
|
TaskStatus.php, TaskSchemaStatus.php, TaskSchemaType.php
|
||||||
Exception/
|
|
||||||
ValidationException.php — Wraps ConstraintViolationList, handled by ExceptionListener
|
|
||||||
EventListener/
|
|
||||||
ExceptionListener.php — Fängt ValidationException, erzeugt JSON 422
|
|
||||||
Repository/
|
Repository/
|
||||||
CategoryRepository.php, TaskRepository.php, TaskSchemaRepository.php
|
CategoryRepository.php, TaskRepository.php, TaskSchemaRepository.php
|
||||||
Service/
|
Service/
|
||||||
CategoryManager.php — Category CRUD-Logik
|
CategoryManager.php — Category CRUD-Logik
|
||||||
TaskManager.php — Task Update/Delete
|
TaskManager.php — Task Update/Delete/Toggle
|
||||||
TaskSchemaManager.php — Schema CRUD + Toggle + Sync-Auslösung
|
TaskSchemaManager.php — Schema CRUD + Sync-Auslösung
|
||||||
TaskGenerator.php — Erzeugt Task-Instanzen für Zeiträume
|
TaskGenerator.php — Erzeugt Task-Instanzen für Zeiträume
|
||||||
TaskSynchronizer.php — Sync nach Schema-Update (löschen/erstellen/reset)
|
TaskSynchronizer.php — Sync nach Schema-Update (löschen/erstellen/reset)
|
||||||
DeadlineCalculator.php — Berechnet Fälligkeitsdaten für ein Schema
|
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`)
|
- **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 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
|
- **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
|
- **Frontend**: Vue 3 Composition API mit `<script setup>`, fetch-basierter API-Client
|
||||||
|
|
||||||
## Development
|
## 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"
|
ddev exec "cd backend && php bin/console doctrine:migrations:migrate --no-interaction"
|
||||||
|
|
||||||
# Frontend
|
# 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
|
# URLs
|
||||||
Frontend: https://haushalt.ddev.site:5174
|
Frontend: https://haushalt.ddev.site:5173
|
||||||
API: https://haushalt.ddev.site/api
|
API: https://haushalt.ddev.site/api
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -33,11 +33,11 @@ CategoryManager::updateCategory() — Kategorie aktualisieren
|
|||||||
CategoryManager::deleteCategory() — Kategorie löschen
|
CategoryManager::deleteCategory() — Kategorie löschen
|
||||||
|
|
||||||
TaskManager::updateTask() — Task aktualisieren (Name, Kategorie, Status, Datum)
|
TaskManager::updateTask() — Task aktualisieren (Name, Kategorie, Status, Datum)
|
||||||
|
TaskManager::toggleTaskStatus() — Task-Status umschalten (aktiv↔erledigt)
|
||||||
TaskManager::deleteTask() — Task löschen
|
TaskManager::deleteTask() — Task löschen
|
||||||
|
|
||||||
TaskSchemaManager::createSchema() — Neues Schema anlegen
|
TaskSchemaManager::createSchema() — Neues Schema anlegen
|
||||||
TaskSchemaManager::updateSchema() — Schema aktualisieren + Tasks synchronisieren
|
TaskSchemaManager::updateSchema() — Schema aktualisieren + Tasks synchronisieren
|
||||||
TaskSchemaManager::toggleTaskStatus() — Task-Status umschalten (aktiv↔erledigt)
|
|
||||||
TaskSchemaManager::deleteSchema() — Schema löschen
|
TaskSchemaManager::deleteSchema() — Schema löschen
|
||||||
|
|
||||||
TaskGenerator::generateForRange() — Fehlende Tasks für einen Zeitraum erzeugen
|
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)
|
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::findInRange() — Alle Tasks in einem Zeitraum (ohne inaktive Schemas)
|
||||||
TaskRepository::getExistingKeys() — Set aus "schemaId-YYYY-MM-DD" Keys für existierende Tasks
|
TaskRepository::getExistingKeys() — Set aus "schemaId-YYYY-MM-DD" Keys für existierende Tasks
|
||||||
TaskRepository::findByTaskFromDate() — Tasks eines Schemas ab einem Datum
|
TaskRepository::findBySchemaFromDate() — Tasks eines Schemas ab einem Datum
|
||||||
TaskRepository::deleteFutureByTask() — Zukünftige Tasks eines Schemas löschen
|
TaskRepository::deleteFutureBySchema() — Zukünftige Tasks eines Schemas löschen
|
||||||
TaskRepository::deleteFutureActive() — Zukünftige aktive 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::findAllSorted() — Alle Tasks mit Datum, sortiert nach Datum absteigend
|
||||||
TaskRepository::findWithoutDate() — Alle aktiven Tasks ohne Datum, sortiert nach Erstellung
|
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
|
# Migration
|
||||||
|
|
||||||
@@ -101,3 +101,4 @@ Version20260324141105 — Erstellt task_completion-Tabelle mit Unique-Constraint
|
|||||||
Version20260324154816 — Ersetzt task_completion durch task_occurrence, migriert Daten
|
Version20260324154816 — Ersetzt task_completion durch task_occurrence, migriert Daten
|
||||||
Version20260325064344 — Ergänzt name, category_overridden, category_id auf task_occurrence
|
Version20260325064344 — Ergänzt name, category_overridden, category_id auf task_occurrence
|
||||||
Version20260326165702 — Benennt task→task_schema und task_occurrence→task um
|
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