Buchungskalender: Abschluss – S6 Belegung laedt nur Relevantes, bis-Indizes, 10-s-Speicher

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
knsoandClaude Opus 5.5 committed 2026-10-07 15:25:17 +00:00
1 parent ab838d07bc
commit 17400cac1f
7 files changed
+99 -17

No files matched your search

+32 -7
View File
@@ -106,15 +106,32 @@ export async function loeschePreise(unterkunftId) {
if (vorhanden) await deleteDocument(config.collections.ukPreise, vorhanden.$id)
}
// ---- Belegungsstand: wird mit jedem Schreiben an Sperren oder Anfragen erhoeht (der Speicher der oeffentlichen /belegung-Antwort gilt nur bis dahin)
let belegungStand = 0
export const belegungsStand = () => belegungStand
// ---- ukSperren
export const listeSperren = (unterkunftId) => liste('ukSperren', [Query.equal('unterkunftId', unterkunftId)])
/** bisNach: nur Sperren, die nach diesem Tag enden (bis > bisNach); die uebrigen koennen kein Fenster ab diesem Tag beruehren. */
export const listeSperren = (unterkunftId, { bisNach } = {}) =>
liste('ukSperren', [Query.equal('unterkunftId', unterkunftId), ...(bisNach ? [Query.greaterThan('bis', bisNach)] : [])])
export async function legeSperreAn(felder) {
return lesen('ukSperren', await createDocument(config.collections.ukSperren, schreiben('ukSperren', felder)))
try {
return lesen('ukSperren', await createDocument(config.collections.ukSperren, schreiben('ukSperren', felder)))
} finally {
belegungStand++
}
}
export const loescheSperre = (id) => deleteDocument(config.collections.ukSperren, id)
export async function loescheSperre(id) {
try {
return await deleteDocument(config.collections.ukSperren, id)
} finally {
belegungStand++
}
}
export const ladeSperre = (id) => ladeDok('ukSperren', id)
// ---- ukAnfragen
@@ -122,11 +139,19 @@ export const ladeSperre = (id) => ladeDok('ukSperren', id)
export const ladeAnfrage = (id) => ladeDok('ukAnfragen', id)
export async function legeAnfrageDokAn(felder) {
return lesen('ukAnfragen', await createDocument(config.collections.ukAnfragen, schreiben('ukAnfragen', felder)))
try {
return lesen('ukAnfragen', await createDocument(config.collections.ukAnfragen, schreiben('ukAnfragen', felder)))
} finally {
belegungStand++
}
}
export async function aktualisiereAnfrage(id, felder) {
return lesen('ukAnfragen', await updateDocument(config.collections.ukAnfragen, id, schreiben('ukAnfragen', felder)))
try {
return lesen('ukAnfragen', await updateDocument(config.collections.ukAnfragen, id, schreiben('ukAnfragen', felder)))
} finally {
belegungStand++
}
}
export function listeAnfragen(featureId, { status, unterkunftId } = {}) {
@@ -137,8 +162,8 @@ export function listeAnfragen(featureId, { status, unterkunftId } = {}) {
}
/** Fuer belegung.js: Anfragen einer Unterkunft mit einem der Status. */
export const listeAnfragenNachStatus = (unterkunftId, status) =>
liste('ukAnfragen', [Query.equal('unterkunftId', unterkunftId), Query.equal('status', status)])
export const listeAnfragenNachStatus = (unterkunftId, status, { bisNach } = {}) =>
liste('ukAnfragen', [Query.equal('unterkunftId', unterkunftId), Query.equal('status', status), ...(bisNach ? [Query.greaterThan('bis', bisNach)] : [])])
// ---- ukRechnungen