.PROJECTKEYVAL
Speichert nutzerspezifische, projektweite Schlüssel-Wert-Paare (RAGAI.PROJECTKEYVAL), geteilt über alle Bots eines Projekts.
Strukturell identisch zu KeyValService (RAGAI.KEYVAL) - gleiche Methodennamen, gleiches
Synchronisationsprinzip per Socket-Events (onKeyValUpdate/onKeyValDelete). Der einzige Unterschied ist der
Geltungsbereich: RAGAI.KEYVAL ist pro Bot isoliert, RAGAI.PROJECTKEYVAL teilt die Daten eines Nutzers
über alle Bots desselben Projekts hinweg (z. B. für RAGAI.GROUPCHAT oder projektweite Nutzerprofile).
Es gibt hier keine !-Präfix-Konvention für dauerhafte Speicherung wie bei RAGAI.KEYVAL.
Events
onKeyValUpdate
Feuert mit dem betroffenen Eintrag, sobald ein Wert per Socket von anderswo aktualisiert wurde.
RAGAI.PROJECTKEYVAL.onKeyValUpdate.subscribe((value) => {
console.log(value);
});
onKeyValDelete
Feuert mit dem betroffenen Eintrag, sobald ein Wert per Socket von anderswo gelöscht wurde.
RAGAI.PROJECTKEYVAL.onKeyValDelete.subscribe((value) => {
console.log(value);
});
Methoden
.deleteKeyValEntry(key, type?)
Löscht einen projektweiten Eintrag des aktuellen Nutzers.
| Parameter | Typ | Beschreibung |
|---|---|---|
key | string | z.input<typeof keyValGetSchema> | Der zu löschende Schlüssel, oder ein Objekt gemäß keyValGetSchema. |
type | string | Optionaler Typ zur Kategorisierung. Standard: "custom". |
Objekt-Form (validiert über keyValGetSchema):
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
key | string | ✔ | Eindeutiger Schlüssel des Eintrags. Mit !-Präfix wird der Wert dauerhaft gespeichert. |
type | string | – (Standard: "custom") | Optionaler Typ zur Kategorisierung der Einträge. |
Rückgabewert: Promise<unknown>
Der gelöschte Eintrag.
.get(key, type?)
Gibt den Wert des angegebenen Schlüssels für den aktuellen Nutzer projektweit zurück, oder null.
| Parameter | Typ | Beschreibung |
|---|---|---|
key | string | z.input<typeof keyValGetSchema> | Eindeutiger Schlüssel, oder ein Objekt gemäß keyValGetSchema. |
type | string | Optionaler Typ zur Kategorisierung. Standard: "custom". |
Objekt-Form (validiert über keyValGetSchema):
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
key | string | ✔ | Eindeutiger Schlüssel des Eintrags. Mit !-Präfix wird der Wert dauerhaft gespeichert. |
type | string | – (Standard: "custom") | Optionaler Typ zur Kategorisierung der Einträge. |
Rückgabewert: Promise<unknown>
Der gespeicherte Wert oder null.
.set(key, value?, type?)
Speichert einen Wert projektweit für den aktuellen Nutzer.
| Parameter | Typ | Beschreibung |
|---|---|---|
key | string | z.input<typeof keyValSetSchema> | Eindeutiger Schlüssel, oder ein Objekt gemäß keyValSetSchema. |
value | unknown | Der zu speichernde Wert. |
type | string | Optionaler Typ zur Kategorisierung. Standard: "custom". |
Objekt-Form (validiert über keyValSetSchema):
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
key | string | ✔ | Eindeutiger Schlüssel des Eintrags. Mit !-Präfix wird der Wert dauerhaft gespeichert. |
value | any | ✔ | Der zu speichernde Wert (String, Zahl, Objekt, Array etc.). |
type | string | – (Standard: "custom") | Optionaler Typ zur Kategorisierung der Einträge. |
Rückgabewert: Promise<ProjectKeyValEntry>
Der gespeicherte Eintrag.
.unique(key, value?, type?)
Wie set, hängt dem Schlüssel aber automatisch einen Zeitstempel an.
| Parameter | Typ | Beschreibung |
|---|---|---|
key | string | z.input<typeof keyValSetSchema> | Basis-Schlüssel, wird um einen Zeitstempel ergänzt, oder ein Objekt gemäß keyValSetSchema. |
value | unknown | Der zu speichernde Wert. |
type | string | Optionaler Typ zur Kategorisierung. Standard: "custom". |
Objekt-Form (validiert über keyValSetSchema):
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
key | string | ✔ | Eindeutiger Schlüssel des Eintrags. Mit !-Präfix wird der Wert dauerhaft gespeichert. |
value | any | ✔ | Der zu speichernde Wert (String, Zahl, Objekt, Array etc.). |
type | string | – (Standard: "custom") | Optionaler Typ zur Kategorisierung der Einträge. |
Rückgabewert: Promise<ProjectKeyValEntry>
Der gespeicherte Eintrag.
.getByType(type)
Gibt alle projektweiten Einträge eines Typs für den aktuellen Nutzer zurück.
| Parameter | Typ | Beschreibung |
|---|---|---|
type | string | Der gesuchte Typ. |
Rückgabewert: Promise<ProjectKeyValEntry[]>
Liste der passenden Einträge.