evo360-types 1.3.413 → 1.3.415

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.
@@ -206,10 +206,17 @@ exports.zAutomationDryRunRequestSchema = zod_1.z.object({
206
206
  // Trigger request (endpoint POST /routines/:id/trigger)
207
207
  // Same shape as the dry-run request — only an optional run_date; no
208
208
  // calendar_ids override or arbitrary payload (F2 scope, see plan-f2 §1).
209
+ //
210
+ // Q22: `force` is the "hot resend" flag. When true the run pierces BOTH dedup
211
+ // layers: (1) creation — the materializer appends a per-run suffix to the
212
+ // idempotency key so a NEW task is always created; (2) send — the task carries
213
+ // `force_send` down to notification.send, which bypasses the dedup_key skip.
214
+ // Force pierces DEDUP only; opt-out and the Q11 dry-run gate stay intact.
209
215
  // ------------------------------------------------------
210
216
  exports.zAutomationTriggerRequestSchema = zod_1.z.object({
211
217
  run_date: zod_1.z
212
218
  .string()
213
219
  .regex(/^\d{4}-\d{2}-\d{2}$/, "expected yyyy-MM-dd")
214
220
  .optional(),
221
+ force: zod_1.z.boolean().optional().default(false),
215
222
  });
@@ -242,10 +242,17 @@ export const zAutomationDryRunRequestSchema = z.object({
242
242
  // Trigger request (endpoint POST /routines/:id/trigger)
243
243
  // Same shape as the dry-run request — only an optional run_date; no
244
244
  // calendar_ids override or arbitrary payload (F2 scope, see plan-f2 §1).
245
+ //
246
+ // Q22: `force` is the "hot resend" flag. When true the run pierces BOTH dedup
247
+ // layers: (1) creation — the materializer appends a per-run suffix to the
248
+ // idempotency key so a NEW task is always created; (2) send — the task carries
249
+ // `force_send` down to notification.send, which bypasses the dedup_key skip.
250
+ // Force pierces DEDUP only; opt-out and the Q11 dry-run gate stay intact.
245
251
  // ------------------------------------------------------
246
252
  export const zAutomationTriggerRequestSchema = z.object({
247
253
  run_date: z
248
254
  .string()
249
255
  .regex(/^\d{4}-\d{2}-\d{2}$/, "expected yyyy-MM-dd")
250
256
  .optional(),
257
+ force: z.boolean().optional().default(false),
251
258
  });
@@ -126,6 +126,13 @@ export interface INotificationSendPayload {
126
126
  idempotency_key?: string;
127
127
  dedup_key?: string;
128
128
  dedup_group_key?: string;
129
+ /**
130
+ * Q22 (hub-automation "hot resend"): when true, the send bypasses the
131
+ * dedup_key suppression — a fresh message doc is created and the provider is
132
+ * called even if a message with the same dedup_key already exists. Pierces
133
+ * DEDUP only; opt-out enforcement is unaffected. Defaults to false/absent.
134
+ */
135
+ force_send?: boolean;
129
136
  [key: string]: unknown;
130
137
  }
131
138
  export interface INotificationMessage extends IFireDoc {
@@ -224,6 +224,14 @@ export interface INotificationSendPayload {
224
224
  dedup_key?: string;
225
225
  dedup_group_key?: string;
226
226
 
227
+ /**
228
+ * Q22 (hub-automation "hot resend"): when true, the send bypasses the
229
+ * dedup_key suppression — a fresh message doc is created and the provider is
230
+ * called even if a message with the same dedup_key already exists. Pierces
231
+ * DEDUP only; opt-out enforcement is unaffected. Defaults to false/absent.
232
+ */
233
+ force_send?: boolean;
234
+
227
235
  [key: string]: unknown;
228
236
  }
229
237
 
@@ -56,6 +56,8 @@ export declare const TaskAutoHandlerEnum: {
56
56
  readonly AppointmentAction: "appointment_action";
57
57
  readonly AppointmentReminder: "appointment_reminder";
58
58
  readonly IntegrationsSyncRun: "evo-integrations.sync-run";
59
+ readonly CampaignMaterialize: "campaign.materialize";
60
+ readonly CampaignDispatchBatch: "campaign.dispatch_batch";
59
61
  };
60
62
  export type TaskAutoHandler = (typeof TaskAutoHandlerEnum)[keyof typeof TaskAutoHandlerEnum];
61
63
  export declare const TaskRetryStrategyEnum: {
@@ -105,6 +105,12 @@ exports.TaskAutoHandlerEnum = {
105
105
  // types/evo-integrations). Permite que o `/force` roteie pelo task-runner e
106
106
  // herde retry/backoff/DLQ, em vez de montar a mensagem PubSub na mão.
107
107
  IntegrationsSyncRun: "evo-integrations.sync-run",
108
+ // feat-081 F2: handlers do modulo de campanhas (padrao pontilhado da feat-078 —
109
+ // `resolveHandlerTopic` monta `campaign.materialize.execute_requests`, topico que
110
+ // a CF `campaign_materialize` ja escuta desde a F1, e
111
+ // `campaign.dispatch_batch.execute_requests` para a cadeia de lotes da F2).
112
+ CampaignMaterialize: "campaign.materialize",
113
+ CampaignDispatchBatch: "campaign.dispatch_batch",
108
114
  };
109
115
  // ----- Retry policy
110
116
  exports.TaskRetryStrategyEnum = {
@@ -116,6 +116,12 @@ export const TaskAutoHandlerEnum = {
116
116
  // types/evo-integrations). Permite que o `/force` roteie pelo task-runner e
117
117
  // herde retry/backoff/DLQ, em vez de montar a mensagem PubSub na mão.
118
118
  IntegrationsSyncRun: "evo-integrations.sync-run",
119
+ // feat-081 F2: handlers do modulo de campanhas (padrao pontilhado da feat-078 —
120
+ // `resolveHandlerTopic` monta `campaign.materialize.execute_requests`, topico que
121
+ // a CF `campaign_materialize` ja escuta desde a F1, e
122
+ // `campaign.dispatch_batch.execute_requests` para a cadeia de lotes da F2).
123
+ CampaignMaterialize: "campaign.materialize",
124
+ CampaignDispatchBatch: "campaign.dispatch_batch",
119
125
  } as const;
120
126
 
121
127
  export type TaskAutoHandler =
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evo360-types",
3
- "version": "1.3.413",
3
+ "version": "1.3.415",
4
4
  "description": "HREVO360 Shared Types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",