@allanfsouza/aether-sdk 2.5.8 → 2.6.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/push.d.ts +93 -0
- package/dist/push.d.ts.map +1 -1
- package/dist/push.js +62 -0
- package/dist/push.js.map +1 -1
- package/package.json +1 -1
- package/src/push.ts +145 -0
package/dist/push.d.ts
CHANGED
|
@@ -78,5 +78,98 @@ export declare class PushModule {
|
|
|
78
78
|
}): Promise<SendPushResponse>;
|
|
79
79
|
listLogs(options?: ListPushLogsOptions): Promise<PushLogEntry[]>;
|
|
80
80
|
getStats(): Promise<PushStats>;
|
|
81
|
+
/**
|
|
82
|
+
* Lista todos os triggers configurados para o projeto.
|
|
83
|
+
*/
|
|
84
|
+
listTriggers(): Promise<PushTrigger[]>;
|
|
85
|
+
/**
|
|
86
|
+
* Obtém um trigger específico por ID.
|
|
87
|
+
*/
|
|
88
|
+
getTrigger(triggerId: string): Promise<PushTrigger>;
|
|
89
|
+
/**
|
|
90
|
+
* Cria um novo trigger de push notification.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* await aether.push.createTrigger({
|
|
95
|
+
* name: "Nova Mensagem",
|
|
96
|
+
* collectionName: "messages",
|
|
97
|
+
* event: "create",
|
|
98
|
+
* conditions: { senderType: { equals: "agent" } },
|
|
99
|
+
* targetUserField: "clientId",
|
|
100
|
+
* titleTemplate: "{{senderName}} respondeu",
|
|
101
|
+
* bodyTemplate: "{{content}}",
|
|
102
|
+
* dataTemplate: { url: "/tickets/{{ticketId}}" }
|
|
103
|
+
* });
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
createTrigger(params: CreatePushTriggerParams): Promise<PushTrigger>;
|
|
107
|
+
/**
|
|
108
|
+
* Atualiza um trigger existente.
|
|
109
|
+
*/
|
|
110
|
+
updateTrigger(triggerId: string, params: Partial<CreatePushTriggerParams>): Promise<PushTrigger>;
|
|
111
|
+
/**
|
|
112
|
+
* Remove um trigger.
|
|
113
|
+
*/
|
|
114
|
+
deleteTrigger(triggerId: string): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Ativa ou desativa um trigger.
|
|
117
|
+
*/
|
|
118
|
+
toggleTrigger(triggerId: string, enabled: boolean): Promise<PushTrigger>;
|
|
119
|
+
}
|
|
120
|
+
export type PushTriggerEvent = "create" | "update" | "delete";
|
|
121
|
+
export interface PushTriggerCondition {
|
|
122
|
+
equals?: any;
|
|
123
|
+
notEquals?: any;
|
|
124
|
+
in?: any[];
|
|
125
|
+
notIn?: any[];
|
|
126
|
+
exists?: boolean;
|
|
127
|
+
gt?: number;
|
|
128
|
+
gte?: number;
|
|
129
|
+
lt?: number;
|
|
130
|
+
lte?: number;
|
|
131
|
+
}
|
|
132
|
+
export interface PushTrigger {
|
|
133
|
+
id: string;
|
|
134
|
+
projectId: string;
|
|
135
|
+
name: string;
|
|
136
|
+
description: string | null;
|
|
137
|
+
collectionName: string;
|
|
138
|
+
event: PushTriggerEvent;
|
|
139
|
+
conditions: Record<string, PushTriggerCondition>;
|
|
140
|
+
targetUserField: string;
|
|
141
|
+
titleTemplate: string;
|
|
142
|
+
bodyTemplate: string;
|
|
143
|
+
dataTemplate: Record<string, any>;
|
|
144
|
+
enabled: boolean;
|
|
145
|
+
priority: string;
|
|
146
|
+
timesTriggered: number;
|
|
147
|
+
lastTriggeredAt: string | null;
|
|
148
|
+
createdAt: string;
|
|
149
|
+
updatedAt: string;
|
|
150
|
+
}
|
|
151
|
+
export interface CreatePushTriggerParams {
|
|
152
|
+
/** Nome do trigger */
|
|
153
|
+
name: string;
|
|
154
|
+
/** Descrição opcional */
|
|
155
|
+
description?: string;
|
|
156
|
+
/** Collection a monitorar (ex: "messages", "tickets") */
|
|
157
|
+
collectionName: string;
|
|
158
|
+
/** Evento que dispara o trigger */
|
|
159
|
+
event: PushTriggerEvent;
|
|
160
|
+
/** Condições para ativar (ex: { status: { equals: "resolved" } }) */
|
|
161
|
+
conditions?: Record<string, PushTriggerCondition>;
|
|
162
|
+
/** Campo do documento que contém o userId de destino */
|
|
163
|
+
targetUserField: string;
|
|
164
|
+
/** Template do título (suporta {{placeholders}}) */
|
|
165
|
+
titleTemplate: string;
|
|
166
|
+
/** Template do corpo (suporta {{placeholders}}) */
|
|
167
|
+
bodyTemplate: string;
|
|
168
|
+
/** Dados extras para a notificação */
|
|
169
|
+
dataTemplate?: Record<string, any>;
|
|
170
|
+
/** Se o trigger está ativo */
|
|
171
|
+
enabled?: boolean;
|
|
172
|
+
/** Prioridade da notificação */
|
|
173
|
+
priority?: string;
|
|
81
174
|
}
|
|
82
175
|
//# sourceMappingURL=push.d.ts.map
|
package/dist/push.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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
|
|
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;IACd,WAAW,CAAC,EAAE,eAAe,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACvB;AAUD,qBAAa,UAAU;IAEf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;gBADJ,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,aAAa;IAG/B;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;IAejE,WAAW,CAAC,MAAM,EAAE;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,WAAW,CAAC,EAAE,eAAe,CAAC;KACjC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBvB,UAAU,CAAC,MAAM,EAAE;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,WAAW,CAAC,EAAE,eAAe,CAAC;KACjC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBvB,QAAQ,CACV,OAAO,GAAE,mBAAwB,GAClC,OAAO,CAAC,YAAY,EAAE,CAAC;IAiBpB,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IAcpC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAQ5C;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQzD;;;;;;;;;;;;;;;;OAgBG;IACG,aAAa,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAS1E;;OAEG;IACG,aAAa,CACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,GACzC,OAAO,CAAC,WAAW,CAAC;IASvB;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;CAGjF;AAMD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACjC,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACX,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACpC,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,KAAK,EAAE,gBAAgB,CAAC;IACxB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAClD,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
package/dist/push.js
CHANGED
|
@@ -62,5 +62,67 @@ export class PushModule {
|
|
|
62
62
|
const { data } = await this.http.get(cleanUrl(routes.push.stats.build(projectId)));
|
|
63
63
|
return data;
|
|
64
64
|
}
|
|
65
|
+
// ==========================================================================
|
|
66
|
+
// PUSH TRIGGERS - Configuração programática de notificações automáticas
|
|
67
|
+
// ==========================================================================
|
|
68
|
+
/**
|
|
69
|
+
* Lista todos os triggers configurados para o projeto.
|
|
70
|
+
*/
|
|
71
|
+
async listTriggers() {
|
|
72
|
+
const projectId = this.client.projectId;
|
|
73
|
+
const { data } = await this.http.get(`/projects/${projectId}/push/triggers`);
|
|
74
|
+
return data.data;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Obtém um trigger específico por ID.
|
|
78
|
+
*/
|
|
79
|
+
async getTrigger(triggerId) {
|
|
80
|
+
const projectId = this.client.projectId;
|
|
81
|
+
const { data } = await this.http.get(`/projects/${projectId}/push/triggers/${triggerId}`);
|
|
82
|
+
return data.data;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Cria um novo trigger de push notification.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* await aether.push.createTrigger({
|
|
90
|
+
* name: "Nova Mensagem",
|
|
91
|
+
* collectionName: "messages",
|
|
92
|
+
* event: "create",
|
|
93
|
+
* conditions: { senderType: { equals: "agent" } },
|
|
94
|
+
* targetUserField: "clientId",
|
|
95
|
+
* titleTemplate: "{{senderName}} respondeu",
|
|
96
|
+
* bodyTemplate: "{{content}}",
|
|
97
|
+
* dataTemplate: { url: "/tickets/{{ticketId}}" }
|
|
98
|
+
* });
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
async createTrigger(params) {
|
|
102
|
+
const projectId = this.client.projectId;
|
|
103
|
+
const { data } = await this.http.post(`/projects/${projectId}/push/triggers`, params);
|
|
104
|
+
return data.data;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Atualiza um trigger existente.
|
|
108
|
+
*/
|
|
109
|
+
async updateTrigger(triggerId, params) {
|
|
110
|
+
const projectId = this.client.projectId;
|
|
111
|
+
const { data } = await this.http.put(`/projects/${projectId}/push/triggers/${triggerId}`, params);
|
|
112
|
+
return data.data;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Remove um trigger.
|
|
116
|
+
*/
|
|
117
|
+
async deleteTrigger(triggerId) {
|
|
118
|
+
const projectId = this.client.projectId;
|
|
119
|
+
await this.http.delete(`/projects/${projectId}/push/triggers/${triggerId}`);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Ativa ou desativa um trigger.
|
|
123
|
+
*/
|
|
124
|
+
async toggleTrigger(triggerId, enabled) {
|
|
125
|
+
return this.updateTrigger(triggerId, { enabled });
|
|
126
|
+
}
|
|
65
127
|
}
|
|
66
128
|
//# sourceMappingURL=push.js.map
|
package/dist/push.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/push.ts
CHANGED
|
@@ -172,4 +172,149 @@ export class PushModule {
|
|
|
172
172
|
|
|
173
173
|
return data;
|
|
174
174
|
}
|
|
175
|
+
|
|
176
|
+
// ==========================================================================
|
|
177
|
+
// PUSH TRIGGERS - Configuração programática de notificações automáticas
|
|
178
|
+
// ==========================================================================
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Lista todos os triggers configurados para o projeto.
|
|
182
|
+
*/
|
|
183
|
+
async listTriggers(): Promise<PushTrigger[]> {
|
|
184
|
+
const projectId = this.client.projectId;
|
|
185
|
+
const { data } = await this.http.get<{ data: PushTrigger[] }>(
|
|
186
|
+
`/projects/${projectId}/push/triggers`
|
|
187
|
+
);
|
|
188
|
+
return data.data;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Obtém um trigger específico por ID.
|
|
193
|
+
*/
|
|
194
|
+
async getTrigger(triggerId: string): Promise<PushTrigger> {
|
|
195
|
+
const projectId = this.client.projectId;
|
|
196
|
+
const { data } = await this.http.get<{ data: PushTrigger }>(
|
|
197
|
+
`/projects/${projectId}/push/triggers/${triggerId}`
|
|
198
|
+
);
|
|
199
|
+
return data.data;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Cria um novo trigger de push notification.
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* await aether.push.createTrigger({
|
|
208
|
+
* name: "Nova Mensagem",
|
|
209
|
+
* collectionName: "messages",
|
|
210
|
+
* event: "create",
|
|
211
|
+
* conditions: { senderType: { equals: "agent" } },
|
|
212
|
+
* targetUserField: "clientId",
|
|
213
|
+
* titleTemplate: "{{senderName}} respondeu",
|
|
214
|
+
* bodyTemplate: "{{content}}",
|
|
215
|
+
* dataTemplate: { url: "/tickets/{{ticketId}}" }
|
|
216
|
+
* });
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
async createTrigger(params: CreatePushTriggerParams): Promise<PushTrigger> {
|
|
220
|
+
const projectId = this.client.projectId;
|
|
221
|
+
const { data } = await this.http.post<{ data: PushTrigger }>(
|
|
222
|
+
`/projects/${projectId}/push/triggers`,
|
|
223
|
+
params
|
|
224
|
+
);
|
|
225
|
+
return data.data;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Atualiza um trigger existente.
|
|
230
|
+
*/
|
|
231
|
+
async updateTrigger(
|
|
232
|
+
triggerId: string,
|
|
233
|
+
params: Partial<CreatePushTriggerParams>
|
|
234
|
+
): Promise<PushTrigger> {
|
|
235
|
+
const projectId = this.client.projectId;
|
|
236
|
+
const { data } = await this.http.put<{ data: PushTrigger }>(
|
|
237
|
+
`/projects/${projectId}/push/triggers/${triggerId}`,
|
|
238
|
+
params
|
|
239
|
+
);
|
|
240
|
+
return data.data;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Remove um trigger.
|
|
245
|
+
*/
|
|
246
|
+
async deleteTrigger(triggerId: string): Promise<void> {
|
|
247
|
+
const projectId = this.client.projectId;
|
|
248
|
+
await this.http.delete(`/projects/${projectId}/push/triggers/${triggerId}`);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Ativa ou desativa um trigger.
|
|
253
|
+
*/
|
|
254
|
+
async toggleTrigger(triggerId: string, enabled: boolean): Promise<PushTrigger> {
|
|
255
|
+
return this.updateTrigger(triggerId, { enabled });
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// =============================================================================
|
|
260
|
+
// PUSH TRIGGER TYPES
|
|
261
|
+
// =============================================================================
|
|
262
|
+
|
|
263
|
+
export type PushTriggerEvent = "create" | "update" | "delete";
|
|
264
|
+
|
|
265
|
+
export interface PushTriggerCondition {
|
|
266
|
+
equals?: any;
|
|
267
|
+
notEquals?: any;
|
|
268
|
+
in?: any[];
|
|
269
|
+
notIn?: any[];
|
|
270
|
+
exists?: boolean;
|
|
271
|
+
gt?: number;
|
|
272
|
+
gte?: number;
|
|
273
|
+
lt?: number;
|
|
274
|
+
lte?: number;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
export interface PushTrigger {
|
|
278
|
+
id: string;
|
|
279
|
+
projectId: string;
|
|
280
|
+
name: string;
|
|
281
|
+
description: string | null;
|
|
282
|
+
collectionName: string;
|
|
283
|
+
event: PushTriggerEvent;
|
|
284
|
+
conditions: Record<string, PushTriggerCondition>;
|
|
285
|
+
targetUserField: string;
|
|
286
|
+
titleTemplate: string;
|
|
287
|
+
bodyTemplate: string;
|
|
288
|
+
dataTemplate: Record<string, any>;
|
|
289
|
+
enabled: boolean;
|
|
290
|
+
priority: string;
|
|
291
|
+
timesTriggered: number;
|
|
292
|
+
lastTriggeredAt: string | null;
|
|
293
|
+
createdAt: string;
|
|
294
|
+
updatedAt: string;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export interface CreatePushTriggerParams {
|
|
298
|
+
/** Nome do trigger */
|
|
299
|
+
name: string;
|
|
300
|
+
/** Descrição opcional */
|
|
301
|
+
description?: string;
|
|
302
|
+
/** Collection a monitorar (ex: "messages", "tickets") */
|
|
303
|
+
collectionName: string;
|
|
304
|
+
/** Evento que dispara o trigger */
|
|
305
|
+
event: PushTriggerEvent;
|
|
306
|
+
/** Condições para ativar (ex: { status: { equals: "resolved" } }) */
|
|
307
|
+
conditions?: Record<string, PushTriggerCondition>;
|
|
308
|
+
/** Campo do documento que contém o userId de destino */
|
|
309
|
+
targetUserField: string;
|
|
310
|
+
/** Template do título (suporta {{placeholders}}) */
|
|
311
|
+
titleTemplate: string;
|
|
312
|
+
/** Template do corpo (suporta {{placeholders}}) */
|
|
313
|
+
bodyTemplate: string;
|
|
314
|
+
/** Dados extras para a notificação */
|
|
315
|
+
dataTemplate?: Record<string, any>;
|
|
316
|
+
/** Se o trigger está ativo */
|
|
317
|
+
enabled?: boolean;
|
|
318
|
+
/** Prioridade da notificação */
|
|
319
|
+
priority?: string;
|
|
175
320
|
}
|