import { config } from '../../config.js' import { getFeatureDoc } from '../siteFeatures.js' /** * Einbau des Zeiten-Skripts beim Deploy (Spec 4.6, Runner-Feld `zeiten`). * Darf weder neubau.js noch previewRebuild.js importieren: previewDeploy laedt diese Datei, previewRebuild laedt * previewDeploy (Zyklus). */ /** Zustaende, in denen die Leisten ausgespielt werden (wie teilweiseLive im Register). */ const AUSGEBEND = ['setup', 'active'] /** Subdomain auf der Sperrliste ZEITEN_KEIN_NEUBAU (Einbau von Hand, weder Neubau noch Einsetzen)? */ export function aufSperrliste(project) { const subdomain = String(project?.subdomain || '').trim().toLowerCase() return subdomain !== '' && config.zeiten.keinNeubau.includes(subdomain) } /** * Zeiten-Feld fuer den Build-Auftrag: { siteKey } nur bei Funktion in setup/active und Projekt nicht auf der * Sperrliste, sonst null. isPublic ist nicht noetig. Wirft nie: der Build darf an den Zeiten nicht scheitern. */ export async function buildZeiten(project) { try { if (!project?.$id || !project.customerId || aufSperrliste(project)) return null const feature = await getFeatureDoc(project.customerId, project.$id, 'zeiten') if (!feature || !AUSGEBEND.includes(feature.state) || !feature.siteKey) return null return { siteKey: feature.siteKey } } catch (err) { console.warn(`[zeiten] Einbau-Abfrage für Projekt ${project?.$id} fehlgeschlagen: ${err?.message}`) return null } }