import { preiseVollstaendig } from './preis.js' import { ladeEinstellungen, ladePreise, listeUnterkuenfte } from './speicher.js' /** * freischaltbar-Haken des Buchungskalenders (featureRegistry, Zustand 'setup', Ticket geschlossen): darf die Funktion jetzt aktiv * werden? Ja, wenn der Kunde alles hinterlegt hat, was Rechnungen und Buchungen brauchen: * - Einstellungen: firma, strasse, plz, ort, email und (steuernummer oder ustId), dazu rechnungAuftragAt (Zustimmung zur * Rechnungsstellung im Namen des Vermieters); * - mindestens eine aktive Unterkunft mit vollstaendigen Preisen (preiseVollstaendig) und Stornobedingungen. * Fail-closed: bei jedem Lesefehler false. * @param {{ $id: string }} doc portalFeatures-Dokument * @returns {Promise} */ export async function freischaltbar(doc) { try { const featureId = doc?.$id if (typeof featureId !== 'string' || !featureId) return false const einst = await ladeEinstellungen(featureId) if (!einst) return false const text = (wert) => typeof wert === 'string' && wert.trim() !== '' if (!['firma', 'strasse', 'plz', 'ort', 'email'].every((k) => text(einst[k]))) return false if (!text(einst.steuernummer) && !text(einst.ustId)) return false if (!einst.rechnungAuftragAt) return false const unterkuenfte = await listeUnterkuenfte(featureId, { nurAktive: true }) for (const u of unterkuenfte) { const preise = await ladePreise(u.$id) if (preiseVollstaendig(preise) && text(preise.stornobedingungen)) return true } return false } catch { return false } }