105 lines
5.2 KiB
Markdown
105 lines
5.2 KiB
Markdown
# 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::toggleTaskStatus() — Task-Status umschalten (aktiv↔erledigt)
|
|
TaskManager::deleteTask() — Task löschen
|
|
|
|
TaskSchemaManager::createSchema() — Neues Schema anlegen
|
|
TaskSchemaManager::updateSchema() — Schema aktualisieren + Tasks synchronisieren
|
|
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::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::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::findActiveSchemasInRange() — 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
|
|
Version20260330210659 — Ergänzt year_days, created_at; entfernt interval_type; passt Indizes an
|