jens 1589088379 M1: CRUD-Slice 'Mahlzeit' Schritt 1 – Logik + Daten + Tests
Rich-Model Mahlzeit (MahlzeitStatus, Wochentag) mit Invarianten und
Zustandsübergängen; DTOs + MahlzeitFactory (reine Mapping-Funktionen);
Manager (create hängt an Ende an: maxSortOrder+1, find → 404) und
Create/Update/Delete-UseCases mit Transaktion + Events nach Commit.

Data-Layer: MahlzeitEntity (Tabelle essens_mahlzeiten, wochentage als
CSV), Mapper (CSV/Enum/null), Provider (find/list/maxSortOrder),
Processor (create/save/delete). DI-Bindings in services.yaml.
ClockInterface (Logic) + SystemClock (Data).

Tests: Model/Factory/UseCase-Unit + Provider/Processor/Mapper-Integration
(In-Mem-SQLite). composer test grün (53 Tests, 161 Assertions).
2026-09-19 08:55:54 +02:00

svc-essensplanung

Single-User-Essensplanung: CRUD + Wochentage + Status (aktiv/gecheckt/archiv)

  • Reordering + htxm-Inspiration, mit optionaler HA-/Smartphone-Sicht.

Einzelner Docker-Stack (FrankenPHP/SQLite), deployt parallel zu anderen svc-*-Stacks unter ~/Projekte/Homelab/.

Status: in Umsetzung – siehe Doku/plan.md

Doku (kanonisch)

Tech

Symfony 7.4 LTS · PHP 8.4 · FrankenPHP · SQLite · htmx + SortableJS · Keycloak-OIDC

S
Description
Essens-Planer: Mittagessen planen, abhaken, archivieren. Symfony-API + htmx-PWA.
Readme
300 KiB
Languages
PHP 86.6%
Twig 11.7%
JavaScript 0.8%
Shell 0.7%
Dockerfile 0.2%