# Journal 2026-10-13

## Deploy: Magallanes Cleanup „Keine Berechtigung“

Release-Cleanup scheiterte an `releases/…/var/cache/prod` (Owner oft `www-data`,
Deploy als `ftpuser`). Sofort-Fix auf dem Server: Cache-Rechte/Release löschen, dann
`./scripts/deploy.sh` als root. Dauerhaft: `scripts/deploy.sh` chown vor Mage,
`.mage.yml` post-release `chmod` auf `var/cache`.

## Fisch: Elternbriefe und Einzel-Elternlink (Notiz agents/notizen/2026-10-13-elternbriefe.md)

- Admin `/admin/fisch/elternbriefe`: Versand an bestätigte Anmeldungen, Filter nach Schwimmbad, deutsch + weitere Sprachen (DeepL), optional abweichender DE-Text pro Bad bei „alle“, Übersetzungslinks in der Mail auf `/booking/fisch/elterninfo/{token}?lang=…`.
- Tabelle `fisch_parent_mail_campaign`, Migration `Version20261013180000`.
- Sammelanmeldung: Modal „Einzel-Elternlink“ — ein Platz, sofort bestätigt, ohne Schule-Mail; `createAdminSingleParentLink` in `FischBulkRegistrationService`.
- Kein Commit/Deploy in diesem Lauf; Migration lokal noch ausführen.

## Fisch: PDF-Anhänge Elternbriefe + Testmail

- PDF-Upload im Admin (global + pro Schwimmbad), Versand via `Email::attachFromPath` in `FischMailService::dispatch`.
- Testversand-Box in Elternbriefe-UI; CLI `app:fisch:parent-mail-test <email>` (ohne DB, generiert PDF per Dompdf).
- Testmail an pohl@dpohl-engineering.de per CLI erfolgreich (SMTP/Messenger).

## Fisch: Elternbrief — nur DE in Mail, Flaggen-Links

- E-Mail-Footer: Flaggen-Bilder (keine Sprachnamen/kein zweisprachiger Text), Link auf `elterninfo`.
- Admin: getrennt „E-Mail nur Deutsch“ und „Übersetzungen für Webseite“; Checkbox-Text angepasst.
- `parent_info`: eigener Flaggen-Switcher wie Startseite.

## Schwimmkurse: Labels „Vorname“ / „Nachname“

Unter „Ihre Daten“ in `step4_booking_form` überall „Vorname“ und „Nachname“
(statt „… des Kindes“); nur Appointment-/Schwimmkurs-Buchung.

## Schwimmkurse: Telefon Pflichtfeld

Telefon unter „Ihre Daten“ verpflichtend (Formular + Backend `requiredFields`).

## Fisch: Test-Elternbrief — ungültiger elterninfo-Link

- Ursache: `sendTestMail` baute Flaggen-Links mit Zufalls-Token, ohne `fisch_parent_mail_campaign`.
- Fix: Testversand speichert Kampagne inkl. i18n; Formular übernimmt DE + Web-Übersetzungen;
  fehlende Locales per DeepL; Flash mit Übersetzungs-URL. Alter Token `5cc6e57ca46f317a` bleibt tot.
