feat: add auto deactivate option for slot plans

Add an autoDeactivate flag to pickup configuration entries, expose it as a dashboard checkbox beside the active state, and keep existing entries defaulting to automatic deactivation unless explicitly disabled.
This commit is contained in:
2026-06-14 21:23:47 +02:00
parent bd41e8c079
commit 3f1892b951
5 changed files with 68 additions and 4 deletions

View File

@@ -685,6 +685,17 @@ function deactivateEntry(session, entry, options = {}) {
return changed;
}
function shouldAutoDeactivateEntry(entry) {
return entry?.autoDeactivate !== false;
}
function deactivateEntryAfterSuccess(session, entry, options = {}) {
if (!shouldAutoDeactivateEntry(entry)) {
return false;
}
return deactivateEntry(session, entry, options);
}
function isEntryActiveInConfig(profileId, entryId) {
if (!profileId || !entryId) {
return false;
@@ -853,7 +864,7 @@ async function processBooking(session, entry, pickup) {
booked: false,
storeId: entry.id
});
deactivateEntry(session, entry);
deactivateEntryAfterSuccess(session, entry);
return;
}
@@ -883,7 +894,7 @@ async function processBooking(session, entry, pickup) {
booked: true,
storeId: entry.id
});
deactivateEntry(session, entry);
deactivateEntryAfterSuccess(session, entry);
} catch (error) {
console.error(`[ERROR] Buchung für ${storeName} am ${readableDate} fehlgeschlagen:`, error.message);
try {