import { config } from '../../config.js' import { getDocument } from '../appwriteAdmin.js' import { getFeatureDoc } from '../siteFeatures.js' /** * Webshop-Anfrage (Spezifikation 2026-10-05-webshop-design.md, Abschnitt 4 "Auf Anfrage"). Dieser Stand ist der Rumpf aus * Task A3: nur die Bestellpruefung; Block B (B1, B2) baut Anfrage stellen, zurueckziehen und die Team-Entscheidung aus. * Die Anfrage steht im Dokument shopConfig, dessen ID gleich der ID des portalFeatures-Dokuments des Projekts ist. */ export const ANFRAGE_OFFEN_TEXT = 'Deine Webshop-Anfrage ist noch nicht freigegeben.' /** * Offene Punkte der Bestellpruefung (featureHaken('shop').bestellpruefung): [] wenn die Anfrage des Projekts vom Team angenommen * ist (anfrageStatus 'angenommen'), sonst ein Punkt. Ohne portalFeatures-Dokument, ohne shopConfig-Dokument oder bei jedem anderen * Status ist die Anfrage nicht freigegeben. Lesefehler werden weitergereicht (der Checkout bestellt dann nicht). */ export async function anfrageOffenePunkte({ customerId, projectId }) { const doc = await getFeatureDoc(customerId, projectId, 'shop') if (!doc) return [ANFRAGE_OFFEN_TEXT] let shop try { shop = await getDocument(config.collections.shopConfig, doc.$id) } catch (err) { if (err?.status === 404 && err.type !== 'collection_not_found' && err.type !== 'database_not_found') return [ANFRAGE_OFFEN_TEXT] throw err } return shop?.anfrageStatus === 'angenommen' ? [] : [ANFRAGE_OFFEN_TEXT] }