Rechtstexte: Dokument-Registry und Fassungskonstante des Terminplaners

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-05 02:24:42 +00:00
1 parent 938b7099dd
commit b20d0464c4
6 files changed
+414 -53

No files matched your search

+37 -2
View File
@@ -145,6 +145,25 @@ const ustHinweis = 'ohne Umsatzsteuer gemäß § 19 UStG'
const ticketProjektName = (project) => project?.projectName || project?.subdomain || ''
/**
* Rechtsunterlage des Terminplaners mit Fassung und Adresse aus config.termine.avvVersion (bei jedem Zugriff gelesen).
* Tests duerfen sie ueberschreiben (Zuweisung); wird der aktuelle Standardwert zurueckgeschrieben (Wiederherstellen nach
* dem Test) oder null/undefined zugewiesen, gilt wieder der Standard und die Unterlage folgt der Konstante.
*/
function termineRechtsunterlage(slug) {
let ueberschrieben = null
const standard = () => ({ version: config.termine.avvVersion, url: `/rechtliches/${slug}-${config.termine.avvVersion}.html` })
return {
get: () => ueberschrieben ?? standard(),
set(wert) {
const std = standard()
ueberschrieben = wert == null || (wert.version === std.version && wert.url === std.url) ? null : wert
},
}
}
const termineLb = termineRechtsunterlage('leistungsbeschreibung-terminplaner')
const termineAvv = termineRechtsunterlage('avv-terminplaner')
/**
* Register der kaufbaren Funktionen (News-Pinnwand, Terminplaner): Preis, Zustimmungen, Rechtsunterlagen,
* Ticket- und Mail-Texte je Funktion; reine Daten, config.js importiert keine Dienste. Die Helfer (featureConfig,
@@ -234,8 +253,20 @@ const features = {
},
],
},
leistungsbeschreibung: { version: 'ENTWURF', url: '' },
avv: { version: 'ENTWURF', url: '' },
// Fassung und Adresse folgen config.termine.avvVersion bei jedem Zugriff (Slugs wie in services/legalDocs.js; config.js
// importiert keine Dienste, test/legalDocs.test.js gleicht beide ab)
get leistungsbeschreibung() {
return termineLb.get()
},
set leistungsbeschreibung(wert) {
termineLb.set(wert)
},
get avv() {
return termineAvv.get()
},
set avv(wert) {
termineAvv.set(wert)
},
widerruf: null,
returnHash: 'termine',
returnProjekt: true,
@@ -527,6 +558,10 @@ export const config = {
.split(',')
.map((s) => s.trim().toLowerCase())
.filter(Boolean),
// Fassung der Terminplaner-Bestellunterlagen (Leistungsbeschreibung, AVV, Widerrufsbelehrung, Bestelltexte, News-
// Zustimmung): Berliner Kalendertag des Fassungs-Commits (JJJJ-MM-TT). Eine ausgelieferte Fassung wird nie
// ueberschrieben: nach Uebergabe an die Kanzlei oder Livegang heisst jede Textaenderung neues Datum und neue Dateien.
avvVersion: '2026-10-05',
holdMinutes: 30,
zelleMin: 5,
mailsProStunde: 200,