diff --git a/MODULCREATION_ANWEISUNG.md b/MODULCREATION_ANWEISUNG.md index c17089f..d638263 100644 --- a/MODULCREATION_ANWEISUNG.md +++ b/MODULCREATION_ANWEISUNG.md @@ -8,3 +8,4 @@ Nur `Custom Settings` darf modulspezifisch sein. Für Zeitzonen und Debug nach Möglichkeit die globalen Helfer aus `src/App/functions.php` nutzen. Global bereits im Setup vorhanden sind Navigation, Debug-Feld, DB-Logik, Zugriffsschutz, Cron-/Scheduler-Logik, Setup-Aktionen, Statusblöcke und Zeitzonen-Vererbung. Ein neues Modul soll dafür nur noch `setup.fields`, optionale `scheduler_jobs` / `interval_tasks` und bei Bedarf `setup_actions` / `setup_status` liefern. +Zeitwerte intern immer in UTC speichern. Anzeige- und Cron-Zeitzonen sind nur für Darstellung bzw. Scheduling gedacht. diff --git a/PROJECT_CONTEXT.md b/PROJECT_CONTEXT.md index 3ff67a2..9a81853 100644 --- a/PROJECT_CONTEXT.md +++ b/PROJECT_CONTEXT.md @@ -229,6 +229,15 @@ Regel fuer neue Module: - Fuer Anzeige-/Formatierungslogik nach Moeglichkeit `nexus_display_timezone_name()` nutzen. - Fuer Cron-Fallbacks nach Moeglichkeit `nexus_cron_timezone_name()` nutzen. +UTC-Speicherregel (VERBINDLICH): +- Zeitzonen-Einstellungen haben keinen Einfluss auf das Speicherformat von Zeitwerten in der Datenbank. +- Zeitwerte sollen projektweit intern immer in `UTC` gespeichert werden. +- Anzeige-Zeitzonen dienen nur der Darstellung fuer Benutzer. +- Cron-Zeitzonen dienen nur der lokalen Auswertung von Zeitplaenen und Faelligkeiten. +- Beim Einlesen lokaler Eingaben muss vor dem Speichern nach `UTC` normalisiert werden. +- Beim Anzeigen gespeicherter Werte muss von `UTC` in die jeweils wirksame Anzeige-Zeitzone umgerechnet werden. +- Neue Module duerfen keine lokalen Zeitzonen direkt in Datenbank-Zeitspalten persistieren. + 10) Globales Debug-System - Das Debug-Popup ist eine globale Infrastruktur aus dem zentralen Layout. - Aktivierung bleibt jedoch pro Modul ueber `debug_enabled` im Modul-Setup.