update
This commit is contained in:
103
backend/plan.md
Normal file
103
backend/plan.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# Entity
|
||||
|
||||
Category(id, name, color) — Farbkodierte Kategorie für Aufgaben
|
||||
TaskSchema(id, name, status, taskType, category, deadline, startDate, endDate, weekdays, monthDays, yearDays, createdAt) — Vorlage für wiederkehrende Aufgaben
|
||||
Task(id, schema, name, category, categoryOverridden, date, status, createdAt) — Einzelne Aufgabe eines Schemas
|
||||
|
||||
# Controller
|
||||
|
||||
CategoryController::index() — Alle Kategorien abrufen
|
||||
CategoryController::show(id) — Einzelne Kategorie abrufen
|
||||
CategoryController::create() — Neue Kategorie anlegen (201)
|
||||
CategoryController::update(id) — Kategorie aktualisieren
|
||||
CategoryController::delete(id) — Kategorie löschen (204)
|
||||
|
||||
TaskController::show(id) — Einzelnen Task abrufen
|
||||
TaskController::update(id) — Task aktualisieren (Name, Kategorie, Status, Datum)
|
||||
TaskController::delete(id) — Task löschen (204)
|
||||
|
||||
TaskSchemaController::index() — Alle Schemas abrufen
|
||||
TaskSchemaController::week(?start) — Wochenansicht ab Datum (Default: heute)
|
||||
TaskSchemaController::allSchemas() — Alle Schemas sortiert nach Erstellung
|
||||
TaskSchemaController::allTasks() — Alle Tasks über alle Schemas
|
||||
TaskSchemaController::show(id) — Einzelnes Schema abrufen
|
||||
TaskSchemaController::create() — Neues Schema anlegen (201)
|
||||
TaskSchemaController::update(id) — Schema aktualisieren + Tasks synchronisieren
|
||||
TaskSchemaController::delete(id) — Schema löschen (204)
|
||||
TaskSchemaController::toggle(id) — Task-Status umschalten (aktiv↔erledigt)
|
||||
|
||||
# Service
|
||||
|
||||
CategoryManager::createCategory() — Neue Kategorie anlegen
|
||||
CategoryManager::updateCategory() — Kategorie aktualisieren
|
||||
CategoryManager::deleteCategory() — Kategorie löschen
|
||||
|
||||
TaskManager::updateTask() — Task aktualisieren (Name, Kategorie, Status, Datum)
|
||||
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
|
||||
TaskGenerator::generateForTasksWithoutDate() — Tasks für Einzel-Schemas ohne Deadline erzeugen
|
||||
|
||||
TaskSynchronizer::syncForSchema() — Tasks nach Schema-Update synchronisieren
|
||||
|
||||
DeadlineCalculator::getDeadlinesForRange() — Fälligkeitsdaten anhand Wiederholungsregeln berechnen
|
||||
|
||||
TaskViewBuilder::buildWeekView() — Wochenansicht nach Tagen gruppiert
|
||||
TaskViewBuilder::buildAllTasksView() — Alle Tasks sortiert
|
||||
|
||||
TaskSerializer::serializeTask() — Task-Entity zu Response-DTO
|
||||
TaskSerializer::serializeTasks() — Mehrere Tasks zu Response-DTOs
|
||||
TaskSerializer::serializeCategory() — Category-Entity zu Response-DTO
|
||||
|
||||
# DTO
|
||||
|
||||
## Request
|
||||
|
||||
CreateSchemaRequest(name, categoryId, status, taskType, deadline, startDate, endDate, weekdays, monthDays, yearDays) — Schema anlegen
|
||||
UpdateSchemaRequest(name, categoryId, hasCategoryId, status, taskType, deadline, startDate, endDate, weekdays, monthDays, yearDays) — Schema ändern
|
||||
UpdateTaskRequest(name, categoryId, status, date) — Task ändern
|
||||
ToggleRequest(date) — Task-Status umschalten
|
||||
CreateCategoryRequest(name, color) — Kategorie anlegen
|
||||
UpdateCategoryRequest(name, color) — Kategorie ändern
|
||||
|
||||
## Response
|
||||
|
||||
TaskResponse(schemaId, taskId, name, status, taskType, date, deadline, isPast, category) — Task-Darstellung
|
||||
CategoryResponse(id, name, color) — Kategorie-Darstellung
|
||||
WeekViewResponse(tasksWithoutDeadline[], days[]) — Wochenansicht
|
||||
DayResponse(date, tasks[]) — Tagesansicht mit Tasks
|
||||
ToggleResponse(completed) — Toggle-Ergebnis
|
||||
|
||||
# Enum
|
||||
|
||||
TaskStatus — Aufgabenstatus (aktiv, erledigt)
|
||||
TaskSchemaStatus — Schemastatus (aktiv, erledigt, inaktiv)
|
||||
TaskSchemaType — Wiederholungstyp (einzel, taeglich, multi, woechentlich, monatlich, jaehrlich)
|
||||
|
||||
# Repository
|
||||
|
||||
CategoryRepository — Standard Doctrine-Repository (keine eigenen Methoden)
|
||||
|
||||
TaskRepository::findByTaskAndDate() — 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::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
|
||||
|
||||
# Migration
|
||||
|
||||
Version20260323230657 — Erstellt Category- und Task-Tabelle (initiales Schema)
|
||||
Version20260324141105 — Erstellt task_completion-Tabelle mit Unique-Constraint (task_id, date)
|
||||
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
|
||||
Reference in New Issue
Block a user