5.0 KiB
Kategorien
Entity
Category(id, name, color) — Farbkodierte Kategorie für Aufgaben
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)
Service
CategoryManager::createCategory() — Neue Kategorie anlegen CategoryManager::updateCategory() — Kategorie aktualisieren CategoryManager::deleteCategory() — Kategorie löschen
DTO
CreateCategoryRequest(name, color) — Kategorie anlegen UpdateCategoryRequest(name, color) — Kategorie ändern
Repository
CategoryRepository — Standard Doctrine-Repository (keine eigenen Methoden)
Aufgaben
Entity
Task(id, schema, name, category, categoryOverridden, date, status, createdAt) — Einzelne Aufgabe eines Schemas
Controller
TaskController::show(id) — Einzelnen Task abrufen TaskController::update(id) — Task aktualisieren (Name, Kategorie, Status, Datum) TaskController::delete(id) — Task löschen (204)
Entity
TaskSchema(id, name, status, taskType, category, deadline, startDate, endDate, weekdays, monthDays, yearDays, createdAt) — Vorlage für wiederkehrende Aufgaben
Controller
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
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
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
Response
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
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