Admin: Reiter E-Mail-Speicher, Abo mit Produkt; Schnittstelle fürs Ticketsystem

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Fable 5.1 committed 2026-09-29 14:37:42 +00:00
1 parent 19f9c747a2
commit 63d3bb11bf
10 files changed
+525 -4

No files matched your search

+14
View File
@@ -154,6 +154,20 @@ export async function listOpenStorageTasks() {
return docs.map((doc) => ({ ...doc, details: parseJson(doc.details, {}) }))
}
/**
* Ereignisse eines Typs in einem oder mehreren Status (z. B. offene Wechsel fuer den Abgleich, gescheiterte
* Speicher-Aenderungen fuer den Admin-Reiter), neueste zuerst, mit geparstem details.
*/
export async function listContractEventsOf(type, status) {
const docs = await listDocuments(COLLECTION(), [
Query.equal('type', type),
Query.equal('status', Array.isArray(status) ? status : [status]),
Query.orderDesc('$createdAt'),
Query.limit(1000),
])
return docs.map((doc) => ({ ...doc, details: parseJson(doc.details, {}) }))
}
/** Zusatzspeicher-Aufgabe erledigt (Team hat die Postfachgroesse angepasst). */
export async function completeContractEvent(id, staffEmail) {
return updateDocument(COLLECTION(), id, {
+2
View File
@@ -739,6 +739,8 @@ export async function getAdminDetail(id) {
active: isActiveSub(subscription),
productKey: productKeyOf(subscription),
productName: getProduct(productKeyOf(subscription)).name,
// Zusatzspeicher (Pakete zu 5 GB) fuer die Zeile "Abo" im Admin (Task 13)
storageUnits: Number(subscription.storageUnits) || 0,
startedAt: subscription.startedAt,
serviceStart: serviceStartOf(subscription),
currentPeriodEnd: subscription.currentPeriodEnd,