Kundenansicht P5: Analyse im Abo-Modell (Hosting, Zielgruppe erzwungen, Nachweis, Tagesprüfung)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
23252df359
commit
57d5db2344
4 files changed
+271
-21
No files matched your search
@@ -1,5 +1,8 @@
|
||||
import { config } from '../config.js'
|
||||
import { getDocument } from './appwriteAdmin.js'
|
||||
import { ACTIVE_STATUSES, getCurrentSubscription } from './stripeBilling.js'
|
||||
import { listContractEvents, openWithdrawals } from './contractEvents.js'
|
||||
import { neueAnsichtFuerKunde } from './kundenansicht/schalter.js'
|
||||
|
||||
/**
|
||||
* Abo-Zuordnung der Funktionen (V5, Spec E3/E8): Welches Abo deckt welche Funktion? Ein Lesepfad (lies) fuer alle
|
||||
@@ -87,3 +90,20 @@ export async function aboLaeuftFuer(customerId, key) {
|
||||
const l = await lies(customerId, new Date())
|
||||
return l.laeuft && ENTHALTEN_IN[key].includes(l.produkt)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gehoert dieser Kunde zum Abo-Modell (sieht er die neue Ansicht)? Fuer Jobs und Dienste ohne Cookie (Tagespruefung der Analyse,
|
||||
* Team-Aktivierung): liest das Kundendokument (kein Dokument: false) und fragt neueAnsichtFuerKunde({ customerId, email }). Nie
|
||||
* neueAnsichtFuerSession: eine Sitzung braucht dort auch appwriteUserId, die ein Job nicht hat. Lesefehler werden weitergereicht.
|
||||
*/
|
||||
export async function aboModellFuerKunde(customerId) {
|
||||
if (typeof customerId !== 'string' || customerId === '') return false
|
||||
let kunde
|
||||
try {
|
||||
kunde = await getDocument(config.collections.customers, customerId)
|
||||
} catch (err) {
|
||||
if (err.status === 404) return false
|
||||
throw err
|
||||
}
|
||||
return neueAnsichtFuerKunde({ customerId, email: kunde.email })
|
||||
}
|
||||
Reference in new issue
Block a user