/** * Loeschfrist abgeschalteter Terminplaner: 30 Tage nach `disabledAt` loescht der Tageslauf (jobs.js) die Buchungen und die * Einstellung. Diese Datei haelt die Frist an einer Stelle, damit Anzeige (siteFeatures.featureView), Mails und Rechtstexte * dieselbe Zahl und dieselbe Rechnung benutzen. Reine Funktionen, nur Importe aus zeit.js und util.js (kein Kreis mit siteFeatures.js). */ import { ausUtc } from './zeit.js' import { zeitMs } from './util.js' /** Tage zwischen dem Abschalten (disabledAt) und der Loeschung. */ export const LOESCHFRIST_TAGE = 30 const TAG_MS = 24 * 60 * 60 * 1000 /** * Zeitpunkt, ab dem die Daten geloescht werden duerfen: disabledAt plus 30 x 24 Stunden (keine Wanduhr-Rechnung, wie der Tageslauf). * disabledAt: ISO-String (auch mit +00:00 wie von Appwrite), Date oder Zahl; fehlend oder ungueltig => null. */ export function loeschzeit(disabledAt) { const ms = zeitMs(disabledAt) if (!Number.isFinite(ms)) return null const ende = new Date(ms + LOESCHFRIST_TAGE * TAG_MS) return Number.isNaN(ende.getTime()) ? null : ende } /** Berliner Kalendertag der Loeschung ('JJJJ-MM-TT') oder null, wenn disabledAt fehlt oder ungueltig ist. */ export function loeschTag(disabledAt) { const ende = loeschzeit(disabledAt) return ende ? ausUtc(ende).tag : null }