@allanfsouza/aether-sdk 2.6.1 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/push.d.ts +54 -4
- package/dist/push.d.ts.map +1 -1
- package/dist/push.js +21 -3
- package/dist/push.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +3 -1
- package/src/push.ts +76 -9
package/dist/index.d.ts
CHANGED
|
@@ -83,7 +83,7 @@ export declare class PlataformaClient {
|
|
|
83
83
|
}
|
|
84
84
|
export { AetherError } from "./errors.js";
|
|
85
85
|
export type { ListOptions } from "./database.js";
|
|
86
|
-
export type { PushPlatform, PushEnvironment, PushDevice, RegisterDeviceParams, SendPushResponse, PushStatus, PushLogEntry, ListPushLogsOptions, PushStats, PushTrigger, PushTriggerEvent, PushTriggerCondition, CreatePushTriggerParams, } from "./push.js";
|
|
86
|
+
export type { PushPlatform, PushEnvironment, PushDevice, RegisterDeviceParams, SendPushResponse, PushStatus, PushLogEntry, ListPushLogsOptions, PushStats, PushTrigger, PushTriggerEvent, PushTriggerCondition, CreatePushTriggerParams, LookupFieldConfig, } from "./push.js";
|
|
87
87
|
export type { TenantUser, TenantLoginResponse, TenantRegisterCredentials, TenantLoginCredentials, } from "./tenant-auth.js";
|
|
88
88
|
export type { ChatOptions, ChatMetadata, AskResponse, Conversation, Message, FeedbackType, SemanticSearchOptions, SemanticSearchResult, GenerateOptions, RetrievedSource, UsageInfo, PersonaConfig, } from "./ai.js";
|
|
89
89
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EAIhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IAEzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAaF,qBAAa,gBAAgB;IAUpB,EAAE,EAAE,cAAc,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,eAAe,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,EAAE,EAAE,QAAQ,CAAC;IAGb,QAAQ,EAAE,cAAc,CAAC;IAEzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,IAAI,EAAE,aAAa,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAAU;gBAErB,MAAM,EAAE,YAAY;IA2ChC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAYpC;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAQzB;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAU3C;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAWhC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAUtC;;OAEG;IACH,OAAO,IAAI,UAAU,GAAG,IAAI;IAmB5B;;;OAGG;IACH,YAAY,IAAI,IAAI;IAUpB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACH,OAAO,CAAC,eAAe;CAUxB;AASD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,SAAS,EAET,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EAIhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IAEzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAaF,qBAAa,gBAAgB;IAUpB,EAAE,EAAE,cAAc,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,eAAe,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,EAAE,EAAE,QAAQ,CAAC;IAGb,QAAQ,EAAE,cAAc,CAAC;IAEzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,IAAI,EAAE,aAAa,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAAU;gBAErB,MAAM,EAAE,YAAY;IA2ChC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAYpC;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAQzB;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAU3C;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAWhC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAUtC;;OAEG;IACH,OAAO,IAAI,UAAU,GAAG,IAAI;IAmB5B;;;OAGG;IACH,YAAY,IAAI,IAAI;IAUpB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACH,OAAO,CAAC,eAAe;CAUxB;AASD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,SAAS,EAET,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EAEvB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAC"}
|
package/dist/push.d.ts
CHANGED
|
@@ -4,7 +4,15 @@ export type PushPlatform = "android" | "ios" | "web";
|
|
|
4
4
|
export type PushEnvironment = "dev" | "staging" | "prod";
|
|
5
5
|
export interface RegisterDeviceParams {
|
|
6
6
|
platform: PushPlatform;
|
|
7
|
-
token
|
|
7
|
+
/** FCM token (para mobile) */
|
|
8
|
+
token?: string;
|
|
9
|
+
/** Web Push endpoint (para web) */
|
|
10
|
+
endpoint?: string;
|
|
11
|
+
/** Web Push keys (para web) */
|
|
12
|
+
keys?: {
|
|
13
|
+
p256dh: string;
|
|
14
|
+
auth: string;
|
|
15
|
+
};
|
|
8
16
|
environment?: PushEnvironment;
|
|
9
17
|
}
|
|
10
18
|
export interface PushDevice {
|
|
@@ -57,6 +65,12 @@ export declare class PushModule {
|
|
|
57
65
|
private client;
|
|
58
66
|
private http;
|
|
59
67
|
constructor(client: PlataformaClient, http: AxiosInstance);
|
|
68
|
+
/**
|
|
69
|
+
* Obtém a chave pública VAPID para Web Push.
|
|
70
|
+
*/
|
|
71
|
+
getVapidKey(): Promise<{
|
|
72
|
+
publicKey: string;
|
|
73
|
+
}>;
|
|
60
74
|
/**
|
|
61
75
|
* Registra um dispositivo para receber push notifications.
|
|
62
76
|
* Suporta FCM (mobile) e Web Push (browser).
|
|
@@ -129,6 +143,26 @@ export interface PushTriggerCondition {
|
|
|
129
143
|
lt?: number;
|
|
130
144
|
lte?: number;
|
|
131
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Configuração de lookup de FK para resolver campos de documentos relacionados.
|
|
148
|
+
* Permite que targetUserField e templates referenciem campos de outras collections.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* // Buscar clientId do ticket quando uma mensagem é criada:
|
|
152
|
+
* {
|
|
153
|
+
* collection: "tickets",
|
|
154
|
+
* foreignKey: "ticketId",
|
|
155
|
+
* fields: ["clientId", "agentId", "title"]
|
|
156
|
+
* }
|
|
157
|
+
*/
|
|
158
|
+
export interface LookupFieldConfig {
|
|
159
|
+
/** Nome da collection relacionada a buscar */
|
|
160
|
+
collection: string;
|
|
161
|
+
/** Campo no documento atual que é a foreign key */
|
|
162
|
+
foreignKey: string;
|
|
163
|
+
/** Campos a extrair do documento relacionado */
|
|
164
|
+
fields: string[];
|
|
165
|
+
}
|
|
132
166
|
export interface PushTrigger {
|
|
133
167
|
id: string;
|
|
134
168
|
projectId: string;
|
|
@@ -137,6 +171,7 @@ export interface PushTrigger {
|
|
|
137
171
|
collectionName: string;
|
|
138
172
|
event: PushTriggerEvent;
|
|
139
173
|
conditions: Record<string, PushTriggerCondition>;
|
|
174
|
+
lookupFields: Record<string, LookupFieldConfig>;
|
|
140
175
|
targetUserField: string;
|
|
141
176
|
titleTemplate: string;
|
|
142
177
|
bodyTemplate: string;
|
|
@@ -159,11 +194,26 @@ export interface CreatePushTriggerParams {
|
|
|
159
194
|
event: PushTriggerEvent;
|
|
160
195
|
/** Condições para ativar (ex: { status: { equals: "resolved" } }) */
|
|
161
196
|
conditions?: Record<string, PushTriggerCondition>;
|
|
162
|
-
/**
|
|
197
|
+
/**
|
|
198
|
+
* Lookups de FK para resolver campos de documentos relacionados.
|
|
199
|
+
* Permite usar targetUserField como "ticket.clientId" e templates como "{{ticket.title}}".
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* // Para notificar o clientId do ticket quando uma mensagem é criada:
|
|
203
|
+
* {
|
|
204
|
+
* ticket: {
|
|
205
|
+
* collection: "tickets",
|
|
206
|
+
* foreignKey: "ticketId",
|
|
207
|
+
* fields: ["clientId", "agentId", "title"]
|
|
208
|
+
* }
|
|
209
|
+
* }
|
|
210
|
+
*/
|
|
211
|
+
lookupFields?: Record<string, LookupFieldConfig>;
|
|
212
|
+
/** Campo do documento que contém o userId de destino (suporta dot notation: "ticket.clientId") */
|
|
163
213
|
targetUserField: string;
|
|
164
|
-
/** Template do título (suporta {{placeholders}}) */
|
|
214
|
+
/** Template do título (suporta {{placeholders}} incluindo campos de lookups) */
|
|
165
215
|
titleTemplate: string;
|
|
166
|
-
/** Template do corpo (suporta {{placeholders}}) */
|
|
216
|
+
/** Template do corpo (suporta {{placeholders}} incluindo campos de lookups) */
|
|
167
217
|
bodyTemplate: string;
|
|
168
218
|
/** Dados extras para a notificação */
|
|
169
219
|
dataTemplate?: Record<string, any>;
|
package/dist/push.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AACrD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
|
package/dist/push.js
CHANGED
|
@@ -11,17 +11,35 @@ export class PushModule {
|
|
|
11
11
|
this.client = client;
|
|
12
12
|
this.http = http;
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Obtém a chave pública VAPID para Web Push.
|
|
16
|
+
*/
|
|
17
|
+
async getVapidKey() {
|
|
18
|
+
const projectId = this.client.projectId;
|
|
19
|
+
const { data } = await this.http.get(`/projects/${projectId}/push/vapid-key`);
|
|
20
|
+
return data;
|
|
21
|
+
}
|
|
14
22
|
/**
|
|
15
23
|
* Registra um dispositivo para receber push notifications.
|
|
16
24
|
* Suporta FCM (mobile) e Web Push (browser).
|
|
17
25
|
*/
|
|
18
26
|
async registerDevice(params) {
|
|
19
27
|
const projectId = this.client.projectId;
|
|
20
|
-
|
|
28
|
+
// Monta o body baseado no tipo de device
|
|
29
|
+
const body = {
|
|
21
30
|
platform: params.platform,
|
|
22
|
-
token: params.token,
|
|
23
31
|
environment: params.environment ?? "prod",
|
|
24
|
-
}
|
|
32
|
+
};
|
|
33
|
+
// FCM (mobile)
|
|
34
|
+
if (params.token) {
|
|
35
|
+
body.token = params.token;
|
|
36
|
+
}
|
|
37
|
+
// Web Push (browser)
|
|
38
|
+
if (params.endpoint) {
|
|
39
|
+
body.endpoint = params.endpoint;
|
|
40
|
+
body.keys = params.keys;
|
|
41
|
+
}
|
|
42
|
+
const { data } = await this.http.post(cleanUrl(routes.push.devices.build(projectId)), body);
|
|
25
43
|
return data.data;
|
|
26
44
|
}
|
|
27
45
|
async sendToToken(params) {
|
package/dist/push.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -285,11 +285,13 @@ export type {
|
|
|
285
285
|
PushLogEntry,
|
|
286
286
|
ListPushLogsOptions,
|
|
287
287
|
PushStats,
|
|
288
|
-
// Push Triggers (v2.6.0)
|
|
288
|
+
// Push Triggers (v2.6.0+)
|
|
289
289
|
PushTrigger,
|
|
290
290
|
PushTriggerEvent,
|
|
291
291
|
PushTriggerCondition,
|
|
292
292
|
CreatePushTriggerParams,
|
|
293
|
+
// FK Lookup (v2.7.0)
|
|
294
|
+
LookupFieldConfig,
|
|
293
295
|
} from "./push.js";
|
|
294
296
|
export type {
|
|
295
297
|
TenantUser,
|
package/src/push.ts
CHANGED
|
@@ -8,7 +8,15 @@ export type PushEnvironment = "dev" | "staging" | "prod";
|
|
|
8
8
|
|
|
9
9
|
export interface RegisterDeviceParams {
|
|
10
10
|
platform: PushPlatform;
|
|
11
|
-
token
|
|
11
|
+
/** FCM token (para mobile) */
|
|
12
|
+
token?: string;
|
|
13
|
+
/** Web Push endpoint (para web) */
|
|
14
|
+
endpoint?: string;
|
|
15
|
+
/** Web Push keys (para web) */
|
|
16
|
+
keys?: {
|
|
17
|
+
p256dh: string;
|
|
18
|
+
auth: string;
|
|
19
|
+
};
|
|
12
20
|
environment?: PushEnvironment;
|
|
13
21
|
}
|
|
14
22
|
|
|
@@ -79,6 +87,15 @@ export class PushModule {
|
|
|
79
87
|
private http: AxiosInstance
|
|
80
88
|
) { }
|
|
81
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Obtém a chave pública VAPID para Web Push.
|
|
92
|
+
*/
|
|
93
|
+
async getVapidKey(): Promise<{ publicKey: string }> {
|
|
94
|
+
const projectId = this.client.projectId;
|
|
95
|
+
const { data } = await this.http.get<{ publicKey: string }>(`/projects/${projectId}/push/vapid-key`);
|
|
96
|
+
return data;
|
|
97
|
+
}
|
|
98
|
+
|
|
82
99
|
/**
|
|
83
100
|
* Registra um dispositivo para receber push notifications.
|
|
84
101
|
* Suporta FCM (mobile) e Web Push (browser).
|
|
@@ -86,13 +103,26 @@ export class PushModule {
|
|
|
86
103
|
async registerDevice(params: RegisterDeviceParams): Promise<PushDevice> {
|
|
87
104
|
const projectId = this.client.projectId;
|
|
88
105
|
|
|
106
|
+
// Monta o body baseado no tipo de device
|
|
107
|
+
const body: Record<string, any> = {
|
|
108
|
+
platform: params.platform,
|
|
109
|
+
environment: params.environment ?? "prod",
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// FCM (mobile)
|
|
113
|
+
if (params.token) {
|
|
114
|
+
body.token = params.token;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Web Push (browser)
|
|
118
|
+
if (params.endpoint) {
|
|
119
|
+
body.endpoint = params.endpoint;
|
|
120
|
+
body.keys = params.keys;
|
|
121
|
+
}
|
|
122
|
+
|
|
89
123
|
const { data } = await this.http.post<RegisterDeviceResponse>(
|
|
90
124
|
cleanUrl(routes.push.devices.build(projectId)),
|
|
91
|
-
|
|
92
|
-
platform: params.platform,
|
|
93
|
-
token: params.token,
|
|
94
|
-
environment: params.environment ?? "prod",
|
|
95
|
-
}
|
|
125
|
+
body
|
|
96
126
|
);
|
|
97
127
|
|
|
98
128
|
return data.data;
|
|
@@ -274,6 +304,27 @@ export interface PushTriggerCondition {
|
|
|
274
304
|
lte?: number;
|
|
275
305
|
}
|
|
276
306
|
|
|
307
|
+
/**
|
|
308
|
+
* Configuração de lookup de FK para resolver campos de documentos relacionados.
|
|
309
|
+
* Permite que targetUserField e templates referenciem campos de outras collections.
|
|
310
|
+
*
|
|
311
|
+
* @example
|
|
312
|
+
* // Buscar clientId do ticket quando uma mensagem é criada:
|
|
313
|
+
* {
|
|
314
|
+
* collection: "tickets",
|
|
315
|
+
* foreignKey: "ticketId",
|
|
316
|
+
* fields: ["clientId", "agentId", "title"]
|
|
317
|
+
* }
|
|
318
|
+
*/
|
|
319
|
+
export interface LookupFieldConfig {
|
|
320
|
+
/** Nome da collection relacionada a buscar */
|
|
321
|
+
collection: string;
|
|
322
|
+
/** Campo no documento atual que é a foreign key */
|
|
323
|
+
foreignKey: string;
|
|
324
|
+
/** Campos a extrair do documento relacionado */
|
|
325
|
+
fields: string[];
|
|
326
|
+
}
|
|
327
|
+
|
|
277
328
|
export interface PushTrigger {
|
|
278
329
|
id: string;
|
|
279
330
|
projectId: string;
|
|
@@ -282,6 +333,7 @@ export interface PushTrigger {
|
|
|
282
333
|
collectionName: string;
|
|
283
334
|
event: PushTriggerEvent;
|
|
284
335
|
conditions: Record<string, PushTriggerCondition>;
|
|
336
|
+
lookupFields: Record<string, LookupFieldConfig>;
|
|
285
337
|
targetUserField: string;
|
|
286
338
|
titleTemplate: string;
|
|
287
339
|
bodyTemplate: string;
|
|
@@ -305,11 +357,26 @@ export interface CreatePushTriggerParams {
|
|
|
305
357
|
event: PushTriggerEvent;
|
|
306
358
|
/** Condições para ativar (ex: { status: { equals: "resolved" } }) */
|
|
307
359
|
conditions?: Record<string, PushTriggerCondition>;
|
|
308
|
-
/**
|
|
360
|
+
/**
|
|
361
|
+
* Lookups de FK para resolver campos de documentos relacionados.
|
|
362
|
+
* Permite usar targetUserField como "ticket.clientId" e templates como "{{ticket.title}}".
|
|
363
|
+
*
|
|
364
|
+
* @example
|
|
365
|
+
* // Para notificar o clientId do ticket quando uma mensagem é criada:
|
|
366
|
+
* {
|
|
367
|
+
* ticket: {
|
|
368
|
+
* collection: "tickets",
|
|
369
|
+
* foreignKey: "ticketId",
|
|
370
|
+
* fields: ["clientId", "agentId", "title"]
|
|
371
|
+
* }
|
|
372
|
+
* }
|
|
373
|
+
*/
|
|
374
|
+
lookupFields?: Record<string, LookupFieldConfig>;
|
|
375
|
+
/** Campo do documento que contém o userId de destino (suporta dot notation: "ticket.clientId") */
|
|
309
376
|
targetUserField: string;
|
|
310
|
-
/** Template do título (suporta {{placeholders}}) */
|
|
377
|
+
/** Template do título (suporta {{placeholders}} incluindo campos de lookups) */
|
|
311
378
|
titleTemplate: string;
|
|
312
|
-
/** Template do corpo (suporta {{placeholders}}) */
|
|
379
|
+
/** Template do corpo (suporta {{placeholders}} incluindo campos de lookups) */
|
|
313
380
|
bodyTemplate: string;
|
|
314
381
|
/** Dados extras para a notificação */
|
|
315
382
|
dataTemplate?: Record<string, any>;
|