evo360-types 1.3.574 → 1.3.581

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.
Files changed (47) hide show
  1. package/dist/apps/evo-chat/channel/zod-schemas.d.ts +273 -0
  2. package/dist/apps/evo-chat/channel/zod-schemas.js +17 -1
  3. package/dist/apps/evo-chat/channel/zod-schemas.ts +19 -0
  4. package/dist/apps/evo-chat/thread-message/zod-schemas.d.ts +24 -0
  5. package/dist/apps/evo-chat/thread-message/zod-schemas.js +2 -0
  6. package/dist/apps/evo-chat/thread-message/zod-schemas.ts +2 -0
  7. package/dist/apps/evo-chat/waba-template/zod-schemas.d.ts +6 -0
  8. package/dist/apps/evo-chat/waba-template/zod-schemas.js +2 -0
  9. package/dist/apps/evo-chat/waba-template/zod-schemas.ts +2 -0
  10. package/dist/apps/evo-crm/lead/zod-schemas.d.ts +9 -0
  11. package/dist/apps/evo-med/calendar/zod-schemas.d.ts +4215 -1256
  12. package/dist/apps/evo-med/calendar/zod-schemas.js +61 -1
  13. package/dist/apps/evo-med/calendar/zod-schemas.ts +64 -0
  14. package/dist/apps/evo-med/insurance/zod-schemas.d.ts +9 -0
  15. package/dist/apps/evo-med/people/zod-schemas.d.ts +18 -0
  16. package/dist/apps/evo-notifications/zod-schemas.d.ts +110 -0
  17. package/dist/apps/evo-notifications/zod-schemas.js +8 -1
  18. package/dist/apps/evo-notifications/zod-schemas.ts +9 -0
  19. package/dist/apps/evo-telemedicine/zod-schemas.d.ts +161 -13
  20. package/dist/apps/evo-telemedicine/zod-schemas.js +93 -2
  21. package/dist/apps/evo-telemedicine/zod-schemas.ts +96 -0
  22. package/dist/apps/shared/zod-schemas.d.ts +3 -0
  23. package/dist/apps/shared/zod-schemas.js +2 -0
  24. package/dist/apps/shared/zod-schemas.ts +2 -0
  25. package/dist/types/evo-chat/channel/index.d.ts +19 -0
  26. package/dist/types/evo-chat/channel/index.ts +24 -0
  27. package/dist/types/evo-chat/thread-message/index.d.ts +4 -0
  28. package/dist/types/evo-chat/thread-message/index.ts +4 -0
  29. package/dist/types/evo-chat/waba-template/index.d.ts +6 -0
  30. package/dist/types/evo-chat/waba-template/index.js +3 -1
  31. package/dist/types/evo-chat/waba-template/index.ts +7 -0
  32. package/dist/types/evo-finops/common/contract.d.ts +8 -0
  33. package/dist/types/evo-finops/common/contract.js +7 -0
  34. package/dist/types/evo-finops/common/contract.ts +7 -0
  35. package/dist/types/evo-med/calendar/index.d.ts +124 -1
  36. package/dist/types/evo-med/calendar/index.js +60 -1
  37. package/dist/types/evo-med/calendar/index.ts +167 -1
  38. package/dist/types/evo-notifications/index.d.ts +11 -0
  39. package/dist/types/evo-notifications/index.ts +13 -0
  40. package/dist/types/evo-reports/index.d.ts +27 -0
  41. package/dist/types/evo-reports/index.ts +28 -0
  42. package/dist/types/evo-telemedicine/index.d.ts +421 -6
  43. package/dist/types/evo-telemedicine/index.js +69 -1
  44. package/dist/types/evo-telemedicine/index.ts +454 -6
  45. package/dist/types/shared/index.d.ts +1 -0
  46. package/dist/types/shared/index.ts +2 -0
  47. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.zMedCalendarSchema = exports.zMedCalendarNotificationConfigSchema = void 0;
3
+ exports.zMedCalendarSchema = exports.zMedCalendarVirtualCareConfigSchema = exports.zMedCalendarVirtualCareEarlyStartSchema = exports.zMedCalendarVirtualCareIdentitySchema = exports.zMedCalendarVirtualCareRecordingSchema = exports.zMedCalendarNotificationConfigSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const zod_schemas_1 = require("../../shared/zod-schemas");
6
6
  const zod_schemas_2 = require("../people/zod-schemas");
@@ -56,6 +56,7 @@ const zNotificationChannelEntrySchema = zod_1.z
56
56
  department_id: zod_1.z.string().min(1).max(60).nullable().optional(),
57
57
  template_id: zod_1.z.string().min(1).max(120).nullable().optional(),
58
58
  template_type: zod_1.z.string().min(1).max(40).nullable().optional(),
59
+ direct_send_text: zod_1.z.string().max(1024).nullable().optional(),
59
60
  ctas: zod_1.z.array(zNotificationCtaSchema).nullable().optional(),
60
61
  })
61
62
  .passthrough();
@@ -83,6 +84,61 @@ exports.zMedCalendarNotificationConfigSchema = zod_1.z
83
84
  .record(zod_1.z.string(), zNotificationEntrySchema)
84
85
  .nullable()
85
86
  .optional(),
87
+ // feat-160 (§10.2): override por MODALIDADE. Mesma forma, mesmo `| null` do
88
+ // bloco `configs` (o editor grava null no "não escolhido") — a herança
89
+ // (chave ausente ⇒ cai em `configs`) é semântica do LEITOR, não do schema:
90
+ // um `.default({})` aqui apagaria a diferença entre "herdar" e "vazio".
91
+ telemedicine_configs: zod_1.z
92
+ .record(zod_1.z.string(), zNotificationEntrySchema)
93
+ .nullable()
94
+ .optional(),
95
+ })
96
+ .passthrough();
97
+ // ----- Virtual Care (feat-160 F16) — espelho de `IMedCalendarVirtualCareConfig`.
98
+ //
99
+ // TUDO opcional + `.nullable()` + `.passthrough()`: o doc gravado é PARCIAL por
100
+ // design (ausente = `CALENDAR_VIRTUAL_CARE_DEFAULTS`) e o editor do FE grava
101
+ // `null` explícito no "não escolhido". SEM `.default()` — o data-validator
102
+ // grava só as chaves do input, então um default aqui não persistiria e faria a
103
+ // leitura mentir sobre o que está no doc.
104
+ //
105
+ // Os únicos limites que o zod IMPÕE são os que a decisão declarou: retenção
106
+ // 7..730 (D32) e duração 15..480 (plan §12). Os demais têm só teto de sanidade
107
+ // — recusar um valor que a spec não proibiu seria inventar regra de negócio.
108
+ exports.zMedCalendarVirtualCareRecordingSchema = zod_1.z
109
+ .object({
110
+ mode: zod_1.z
111
+ .enum(["off", "manual", "auto_audio", "auto_video"])
112
+ .nullable()
113
+ .optional(),
114
+ transcription: zod_1.z.boolean().nullable().optional(),
115
+ retention_days: zod_1.z.number().int().min(7).max(730).nullable().optional(),
116
+ })
117
+ .passthrough();
118
+ exports.zMedCalendarVirtualCareIdentitySchema = zod_1.z
119
+ .object({
120
+ require_name: zod_1.z.boolean().nullable().optional(),
121
+ require_birth_date: zod_1.z.boolean().nullable().optional(),
122
+ skip: zod_1.z.boolean().nullable().optional(),
123
+ })
124
+ .passthrough();
125
+ exports.zMedCalendarVirtualCareEarlyStartSchema = zod_1.z
126
+ .object({
127
+ doctor: zod_1.z.number().int().min(0).max(1440).nullable().optional(),
128
+ patient: zod_1.z.number().int().min(0).max(1440).nullable().optional(),
129
+ })
130
+ .passthrough();
131
+ exports.zMedCalendarVirtualCareConfigSchema = zod_1.z
132
+ .object({
133
+ auto_admit: zod_1.z.boolean().nullable().optional(),
134
+ recording: exports.zMedCalendarVirtualCareRecordingSchema.nullable().optional(),
135
+ identity: exports.zMedCalendarVirtualCareIdentitySchema.nullable().optional(),
136
+ allow_early_start_minutes: exports.zMedCalendarVirtualCareEarlyStartSchema
137
+ .nullable()
138
+ .optional(),
139
+ allow_late_end: zod_1.z.boolean().nullable().optional(),
140
+ max_duration_minutes: zod_1.z.number().int().min(15).max(480).nullable().optional(),
141
+ end_warning_minutes: zod_1.z.number().int().min(0).max(1440).nullable().optional(),
86
142
  })
87
143
  .passthrough();
88
144
  exports.zMedCalendarSchema = zod_schemas_1.zFireDocSchema
@@ -127,5 +183,9 @@ exports.zMedCalendarSchema = zod_schemas_1.zFireDocSchema
127
183
  available_for_hubia: zod_1.z.boolean().default(false).nullable().optional(),
128
184
  integration: zod_schemas_3.zMedCalendarIntegrationSchema.nullable().optional(),
129
185
  notification_config: exports.zMedCalendarNotificationConfigSchema.nullable().optional(),
186
+ virtual_care: exports.zMedCalendarVirtualCareConfigSchema.nullable().optional(),
187
+ // Como `userRef`: DocumentReference não é serializável em zod; o tipo TS
188
+ // (`FirestoreDocumentReference`) é o contrato e o `z.any()` só não reprova.
189
+ default_professional_ref: zod_1.z.any().nullable().optional(),
130
190
  })
131
191
  .passthrough();
@@ -57,6 +57,7 @@ const zNotificationChannelEntrySchema = z
57
57
  department_id: z.string().min(1).max(60).nullable().optional(),
58
58
  template_id: z.string().min(1).max(120).nullable().optional(),
59
59
  template_type: z.string().min(1).max(40).nullable().optional(),
60
+ direct_send_text: z.string().max(1024).nullable().optional(),
60
61
  ctas: z.array(zNotificationCtaSchema).nullable().optional(),
61
62
  })
62
63
  .passthrough();
@@ -86,6 +87,65 @@ export const zMedCalendarNotificationConfigSchema = z
86
87
  .record(z.string(), zNotificationEntrySchema)
87
88
  .nullable()
88
89
  .optional(),
90
+ // feat-160 (§10.2): override por MODALIDADE. Mesma forma, mesmo `| null` do
91
+ // bloco `configs` (o editor grava null no "não escolhido") — a herança
92
+ // (chave ausente ⇒ cai em `configs`) é semântica do LEITOR, não do schema:
93
+ // um `.default({})` aqui apagaria a diferença entre "herdar" e "vazio".
94
+ telemedicine_configs: z
95
+ .record(z.string(), zNotificationEntrySchema)
96
+ .nullable()
97
+ .optional(),
98
+ })
99
+ .passthrough();
100
+
101
+ // ----- Virtual Care (feat-160 F16) — espelho de `IMedCalendarVirtualCareConfig`.
102
+ //
103
+ // TUDO opcional + `.nullable()` + `.passthrough()`: o doc gravado é PARCIAL por
104
+ // design (ausente = `CALENDAR_VIRTUAL_CARE_DEFAULTS`) e o editor do FE grava
105
+ // `null` explícito no "não escolhido". SEM `.default()` — o data-validator
106
+ // grava só as chaves do input, então um default aqui não persistiria e faria a
107
+ // leitura mentir sobre o que está no doc.
108
+ //
109
+ // Os únicos limites que o zod IMPÕE são os que a decisão declarou: retenção
110
+ // 7..730 (D32) e duração 15..480 (plan §12). Os demais têm só teto de sanidade
111
+ // — recusar um valor que a spec não proibiu seria inventar regra de negócio.
112
+ export const zMedCalendarVirtualCareRecordingSchema = z
113
+ .object({
114
+ mode: z
115
+ .enum(["off", "manual", "auto_audio", "auto_video"])
116
+ .nullable()
117
+ .optional(),
118
+ transcription: z.boolean().nullable().optional(),
119
+ retention_days: z.number().int().min(7).max(730).nullable().optional(),
120
+ })
121
+ .passthrough();
122
+
123
+ export const zMedCalendarVirtualCareIdentitySchema = z
124
+ .object({
125
+ require_name: z.boolean().nullable().optional(),
126
+ require_birth_date: z.boolean().nullable().optional(),
127
+ skip: z.boolean().nullable().optional(),
128
+ })
129
+ .passthrough();
130
+
131
+ export const zMedCalendarVirtualCareEarlyStartSchema = z
132
+ .object({
133
+ doctor: z.number().int().min(0).max(1440).nullable().optional(),
134
+ patient: z.number().int().min(0).max(1440).nullable().optional(),
135
+ })
136
+ .passthrough();
137
+
138
+ export const zMedCalendarVirtualCareConfigSchema = z
139
+ .object({
140
+ auto_admit: z.boolean().nullable().optional(),
141
+ recording: zMedCalendarVirtualCareRecordingSchema.nullable().optional(),
142
+ identity: zMedCalendarVirtualCareIdentitySchema.nullable().optional(),
143
+ allow_early_start_minutes: zMedCalendarVirtualCareEarlyStartSchema
144
+ .nullable()
145
+ .optional(),
146
+ allow_late_end: z.boolean().nullable().optional(),
147
+ max_duration_minutes: z.number().int().min(15).max(480).nullable().optional(),
148
+ end_warning_minutes: z.number().int().min(0).max(1440).nullable().optional(),
89
149
  })
90
150
  .passthrough();
91
151
 
@@ -131,5 +191,9 @@ export const zMedCalendarSchema = zFireDocSchema
131
191
  available_for_hubia: z.boolean().default(false).nullable().optional(),
132
192
  integration: zMedCalendarIntegrationSchema.nullable().optional(),
133
193
  notification_config: zMedCalendarNotificationConfigSchema.nullable().optional(),
194
+ virtual_care: zMedCalendarVirtualCareConfigSchema.nullable().optional(),
195
+ // Como `userRef`: DocumentReference não é serializável em zod; o tipo TS
196
+ // (`FirestoreDocumentReference`) é o contrato e o `z.any()` só não reprova.
197
+ default_professional_ref: z.any().nullable().optional(),
134
198
  })
135
199
  .passthrough();
@@ -166,6 +166,7 @@ export declare const zInsuranceCompanySchema: z.ZodObject<{
166
166
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
167
167
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
168
168
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
169
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
169
170
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
170
171
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
171
172
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -173,6 +174,7 @@ export declare const zInsuranceCompanySchema: z.ZodObject<{
173
174
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
174
175
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
175
176
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
177
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
176
178
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
177
179
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
178
180
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -180,6 +182,7 @@ export declare const zInsuranceCompanySchema: z.ZodObject<{
180
182
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
181
183
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
182
184
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
185
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
183
186
  }, z.ZodTypeAny, "passthrough">>>;
184
187
  tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
185
188
  name: z.ZodString;
@@ -302,6 +305,7 @@ export declare const zInsuranceCompanySchema: z.ZodObject<{
302
305
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
303
306
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
304
307
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
308
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
305
309
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
306
310
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
307
311
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -309,6 +313,7 @@ export declare const zInsuranceCompanySchema: z.ZodObject<{
309
313
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
310
314
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
311
315
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
316
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
312
317
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
313
318
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
314
319
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -316,6 +321,7 @@ export declare const zInsuranceCompanySchema: z.ZodObject<{
316
321
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
317
322
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
318
323
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
324
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
319
325
  }, z.ZodTypeAny, "passthrough">>>;
320
326
  tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
321
327
  name: z.ZodString;
@@ -438,6 +444,7 @@ export declare const zInsuranceCompanySchema: z.ZodObject<{
438
444
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
439
445
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
440
446
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
447
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
441
448
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
442
449
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
443
450
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -445,6 +452,7 @@ export declare const zInsuranceCompanySchema: z.ZodObject<{
445
452
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
446
453
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
447
454
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
455
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
448
456
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
449
457
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
450
458
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -452,6 +460,7 @@ export declare const zInsuranceCompanySchema: z.ZodObject<{
452
460
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
453
461
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
454
462
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
463
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
455
464
  }, z.ZodTypeAny, "passthrough">>>;
456
465
  tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
457
466
  name: z.ZodString;
@@ -161,6 +161,7 @@ export declare const zProfessionalSchema: z.ZodObject<{
161
161
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
162
162
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
163
163
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
164
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
164
165
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
165
166
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
166
167
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -168,6 +169,7 @@ export declare const zProfessionalSchema: z.ZodObject<{
168
169
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
169
170
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
170
171
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
172
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
171
173
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
172
174
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
173
175
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -175,6 +177,7 @@ export declare const zProfessionalSchema: z.ZodObject<{
175
177
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
176
178
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
177
179
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
180
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
178
181
  }, z.ZodTypeAny, "passthrough">>>>;
179
182
  tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
180
183
  name: z.ZodString;
@@ -312,6 +315,7 @@ export declare const zProfessionalSchema: z.ZodObject<{
312
315
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
313
316
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
314
317
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
318
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
315
319
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
316
320
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
317
321
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -319,6 +323,7 @@ export declare const zProfessionalSchema: z.ZodObject<{
319
323
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
320
324
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
321
325
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
326
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
322
327
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
323
328
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
324
329
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -326,6 +331,7 @@ export declare const zProfessionalSchema: z.ZodObject<{
326
331
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
327
332
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
328
333
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
334
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
329
335
  }, z.ZodTypeAny, "passthrough">>>>;
330
336
  tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
331
337
  name: z.ZodString;
@@ -463,6 +469,7 @@ export declare const zProfessionalSchema: z.ZodObject<{
463
469
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
464
470
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
465
471
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
472
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
466
473
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
467
474
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
468
475
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -470,6 +477,7 @@ export declare const zProfessionalSchema: z.ZodObject<{
470
477
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
471
478
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
472
479
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
480
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
473
481
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
474
482
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
475
483
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -477,6 +485,7 @@ export declare const zProfessionalSchema: z.ZodObject<{
477
485
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
478
486
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
479
487
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
488
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
480
489
  }, z.ZodTypeAny, "passthrough">>>>;
481
490
  tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
482
491
  name: z.ZodString;
@@ -785,6 +794,7 @@ export declare const zPatientSchema: z.ZodObject<{
785
794
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
786
795
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
787
796
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
797
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
788
798
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
789
799
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
790
800
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -792,6 +802,7 @@ export declare const zPatientSchema: z.ZodObject<{
792
802
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
793
803
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
794
804
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
805
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
795
806
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
796
807
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
797
808
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -799,6 +810,7 @@ export declare const zPatientSchema: z.ZodObject<{
799
810
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
800
811
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
801
812
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
813
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
802
814
  }, z.ZodTypeAny, "passthrough">>>>;
803
815
  /**
804
816
  * @deprecated Vínculo escalar com o lead. Não representa o caso real de um
@@ -1135,6 +1147,7 @@ export declare const zPatientSchema: z.ZodObject<{
1135
1147
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1136
1148
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1137
1149
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1150
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1138
1151
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1139
1152
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
1140
1153
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -1142,6 +1155,7 @@ export declare const zPatientSchema: z.ZodObject<{
1142
1155
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1143
1156
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1144
1157
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1158
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1145
1159
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1146
1160
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
1147
1161
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -1149,6 +1163,7 @@ export declare const zPatientSchema: z.ZodObject<{
1149
1163
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1150
1164
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1151
1165
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1166
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1152
1167
  }, z.ZodTypeAny, "passthrough">>>>;
1153
1168
  /**
1154
1169
  * @deprecated Vínculo escalar com o lead. Não representa o caso real de um
@@ -1485,6 +1500,7 @@ export declare const zPatientSchema: z.ZodObject<{
1485
1500
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1486
1501
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1487
1502
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1503
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1488
1504
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1489
1505
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
1490
1506
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -1492,6 +1508,7 @@ export declare const zPatientSchema: z.ZodObject<{
1492
1508
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1493
1509
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1494
1510
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1511
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1495
1512
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1496
1513
  email: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
1497
1514
  phone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
@@ -1499,6 +1516,7 @@ export declare const zPatientSchema: z.ZodObject<{
1499
1516
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1500
1517
  instagram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1501
1518
  instagram_username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1519
+ bsuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1502
1520
  }, z.ZodTypeAny, "passthrough">>>>;
1503
1521
  /**
1504
1522
  * @deprecated Vínculo escalar com o lead. Não representa o caso real de um
@@ -624,6 +624,16 @@ export declare const zNotificationLogSchema: z.ZodObject<{
624
624
  data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
625
625
  at: z.ZodDate;
626
626
  }, z.ZodTypeAny, "passthrough">>;
627
+ export declare const zNotificationDirectSendSchema: z.ZodObject<{
628
+ category: z.ZodLiteral<"utility">;
629
+ ttl_seconds: z.ZodOptional<z.ZodNumber>;
630
+ }, "strip", z.ZodTypeAny, {
631
+ category: "utility";
632
+ ttl_seconds?: number | undefined;
633
+ }, {
634
+ category: "utility";
635
+ ttl_seconds?: number | undefined;
636
+ }>;
627
637
  export declare const zDirectSendPayloadSchema: z.ZodEffects<z.ZodObject<{
628
638
  tenant: z.ZodString;
629
639
  kind: z.ZodLiteral<"notification.send">;
@@ -676,6 +686,16 @@ export declare const zDirectSendPayloadSchema: z.ZodEffects<z.ZodObject<{
676
686
  }, z.ZodTypeAny, "passthrough">>>;
677
687
  /** WhatsApp session text (no HSM). Max length per Meta. */
678
688
  body_text: z.ZodOptional<z.ZodString>;
689
+ direct_send: z.ZodOptional<z.ZodObject<{
690
+ category: z.ZodLiteral<"utility">;
691
+ ttl_seconds: z.ZodOptional<z.ZodNumber>;
692
+ }, "strip", z.ZodTypeAny, {
693
+ category: "utility";
694
+ ttl_seconds?: number | undefined;
695
+ }, {
696
+ category: "utility";
697
+ ttl_seconds?: number | undefined;
698
+ }>>;
679
699
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
680
700
  routine: z.ZodOptional<z.ZodObject<{
681
701
  id: z.ZodString;
@@ -784,6 +804,16 @@ export declare const zDirectSendPayloadSchema: z.ZodEffects<z.ZodObject<{
784
804
  }, z.ZodTypeAny, "passthrough">>>;
785
805
  /** WhatsApp session text (no HSM). Max length per Meta. */
786
806
  body_text: z.ZodOptional<z.ZodString>;
807
+ direct_send: z.ZodOptional<z.ZodObject<{
808
+ category: z.ZodLiteral<"utility">;
809
+ ttl_seconds: z.ZodOptional<z.ZodNumber>;
810
+ }, "strip", z.ZodTypeAny, {
811
+ category: "utility";
812
+ ttl_seconds?: number | undefined;
813
+ }, {
814
+ category: "utility";
815
+ ttl_seconds?: number | undefined;
816
+ }>>;
787
817
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
788
818
  routine: z.ZodOptional<z.ZodObject<{
789
819
  id: z.ZodString;
@@ -892,6 +922,16 @@ export declare const zDirectSendPayloadSchema: z.ZodEffects<z.ZodObject<{
892
922
  }, z.ZodTypeAny, "passthrough">>>;
893
923
  /** WhatsApp session text (no HSM). Max length per Meta. */
894
924
  body_text: z.ZodOptional<z.ZodString>;
925
+ direct_send: z.ZodOptional<z.ZodObject<{
926
+ category: z.ZodLiteral<"utility">;
927
+ ttl_seconds: z.ZodOptional<z.ZodNumber>;
928
+ }, "strip", z.ZodTypeAny, {
929
+ category: "utility";
930
+ ttl_seconds?: number | undefined;
931
+ }, {
932
+ category: "utility";
933
+ ttl_seconds?: number | undefined;
934
+ }>>;
895
935
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
896
936
  routine: z.ZodOptional<z.ZodObject<{
897
937
  id: z.ZodString;
@@ -1000,6 +1040,16 @@ export declare const zDirectSendPayloadSchema: z.ZodEffects<z.ZodObject<{
1000
1040
  }, z.ZodTypeAny, "passthrough">>>;
1001
1041
  /** WhatsApp session text (no HSM). Max length per Meta. */
1002
1042
  body_text: z.ZodOptional<z.ZodString>;
1043
+ direct_send: z.ZodOptional<z.ZodObject<{
1044
+ category: z.ZodLiteral<"utility">;
1045
+ ttl_seconds: z.ZodOptional<z.ZodNumber>;
1046
+ }, "strip", z.ZodTypeAny, {
1047
+ category: "utility";
1048
+ ttl_seconds?: number | undefined;
1049
+ }, {
1050
+ category: "utility";
1051
+ ttl_seconds?: number | undefined;
1052
+ }>>;
1003
1053
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1004
1054
  routine: z.ZodOptional<z.ZodObject<{
1005
1055
  id: z.ZodString;
@@ -1108,6 +1158,16 @@ export declare const zDirectSendPayloadSchema: z.ZodEffects<z.ZodObject<{
1108
1158
  }, z.ZodTypeAny, "passthrough">>>;
1109
1159
  /** WhatsApp session text (no HSM). Max length per Meta. */
1110
1160
  body_text: z.ZodOptional<z.ZodString>;
1161
+ direct_send: z.ZodOptional<z.ZodObject<{
1162
+ category: z.ZodLiteral<"utility">;
1163
+ ttl_seconds: z.ZodOptional<z.ZodNumber>;
1164
+ }, "strip", z.ZodTypeAny, {
1165
+ category: "utility";
1166
+ ttl_seconds?: number | undefined;
1167
+ }, {
1168
+ category: "utility";
1169
+ ttl_seconds?: number | undefined;
1170
+ }>>;
1111
1171
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1112
1172
  routine: z.ZodOptional<z.ZodObject<{
1113
1173
  id: z.ZodString;
@@ -1215,6 +1275,16 @@ export declare const zNexusDirectSendPayloadSchema: z.ZodEffects<z.ZodObject<{
1215
1275
  version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1216
1276
  }, z.ZodTypeAny, "passthrough">>>;
1217
1277
  body_text: z.ZodOptional<z.ZodString>;
1278
+ direct_send: z.ZodOptional<z.ZodObject<{
1279
+ category: z.ZodLiteral<"utility">;
1280
+ ttl_seconds: z.ZodOptional<z.ZodNumber>;
1281
+ }, "strip", z.ZodTypeAny, {
1282
+ category: "utility";
1283
+ ttl_seconds?: number | undefined;
1284
+ }, {
1285
+ category: "utility";
1286
+ ttl_seconds?: number | undefined;
1287
+ }>>;
1218
1288
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1219
1289
  routine: z.ZodOptional<z.ZodObject<{
1220
1290
  id: z.ZodString;
@@ -1321,6 +1391,16 @@ export declare const zNexusDirectSendPayloadSchema: z.ZodEffects<z.ZodObject<{
1321
1391
  version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1322
1392
  }, z.ZodTypeAny, "passthrough">>>;
1323
1393
  body_text: z.ZodOptional<z.ZodString>;
1394
+ direct_send: z.ZodOptional<z.ZodObject<{
1395
+ category: z.ZodLiteral<"utility">;
1396
+ ttl_seconds: z.ZodOptional<z.ZodNumber>;
1397
+ }, "strip", z.ZodTypeAny, {
1398
+ category: "utility";
1399
+ ttl_seconds?: number | undefined;
1400
+ }, {
1401
+ category: "utility";
1402
+ ttl_seconds?: number | undefined;
1403
+ }>>;
1324
1404
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1325
1405
  routine: z.ZodOptional<z.ZodObject<{
1326
1406
  id: z.ZodString;
@@ -1427,6 +1507,16 @@ export declare const zNexusDirectSendPayloadSchema: z.ZodEffects<z.ZodObject<{
1427
1507
  version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1428
1508
  }, z.ZodTypeAny, "passthrough">>>;
1429
1509
  body_text: z.ZodOptional<z.ZodString>;
1510
+ direct_send: z.ZodOptional<z.ZodObject<{
1511
+ category: z.ZodLiteral<"utility">;
1512
+ ttl_seconds: z.ZodOptional<z.ZodNumber>;
1513
+ }, "strip", z.ZodTypeAny, {
1514
+ category: "utility";
1515
+ ttl_seconds?: number | undefined;
1516
+ }, {
1517
+ category: "utility";
1518
+ ttl_seconds?: number | undefined;
1519
+ }>>;
1430
1520
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1431
1521
  routine: z.ZodOptional<z.ZodObject<{
1432
1522
  id: z.ZodString;
@@ -1533,6 +1623,16 @@ export declare const zNexusDirectSendPayloadSchema: z.ZodEffects<z.ZodObject<{
1533
1623
  version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1534
1624
  }, z.ZodTypeAny, "passthrough">>>;
1535
1625
  body_text: z.ZodOptional<z.ZodString>;
1626
+ direct_send: z.ZodOptional<z.ZodObject<{
1627
+ category: z.ZodLiteral<"utility">;
1628
+ ttl_seconds: z.ZodOptional<z.ZodNumber>;
1629
+ }, "strip", z.ZodTypeAny, {
1630
+ category: "utility";
1631
+ ttl_seconds?: number | undefined;
1632
+ }, {
1633
+ category: "utility";
1634
+ ttl_seconds?: number | undefined;
1635
+ }>>;
1536
1636
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1537
1637
  routine: z.ZodOptional<z.ZodObject<{
1538
1638
  id: z.ZodString;
@@ -1639,6 +1739,16 @@ export declare const zNexusDirectSendPayloadSchema: z.ZodEffects<z.ZodObject<{
1639
1739
  version: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
1640
1740
  }, z.ZodTypeAny, "passthrough">>>;
1641
1741
  body_text: z.ZodOptional<z.ZodString>;
1742
+ direct_send: z.ZodOptional<z.ZodObject<{
1743
+ category: z.ZodLiteral<"utility">;
1744
+ ttl_seconds: z.ZodOptional<z.ZodNumber>;
1745
+ }, "strip", z.ZodTypeAny, {
1746
+ category: "utility";
1747
+ ttl_seconds?: number | undefined;
1748
+ }, {
1749
+ category: "utility";
1750
+ ttl_seconds?: number | undefined;
1751
+ }>>;
1642
1752
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1643
1753
  routine: z.ZodOptional<z.ZodObject<{
1644
1754
  id: z.ZodString;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.zNexusDirectSendPayloadSchema = exports.zDirectSendPayloadSchema = exports.zNotificationLogSchema = exports.zNotificationAttemptSchema = exports.zNotificationMessageSchema = exports.zNotificationErrorSchema = exports.zNotificationProviderMetaSchema = exports.zNotificationTemplateRefSchema = exports.zNotificationChannelRefSchema = exports.zNotificationRecipientSchema = exports.zNotificationLogLevelSchema = exports.zNotificationRecipientKindSchema = exports.zNotificationAttemptStatusSchema = exports.zNotificationMessageStatusSchema = exports.zNotificationChannelTypeSchema = void 0;
3
+ exports.zNexusDirectSendPayloadSchema = exports.zDirectSendPayloadSchema = exports.zNotificationDirectSendSchema = exports.zNotificationLogSchema = exports.zNotificationAttemptSchema = exports.zNotificationMessageSchema = exports.zNotificationErrorSchema = exports.zNotificationProviderMetaSchema = exports.zNotificationTemplateRefSchema = exports.zNotificationChannelRefSchema = exports.zNotificationRecipientSchema = exports.zNotificationLogLevelSchema = exports.zNotificationRecipientKindSchema = exports.zNotificationAttemptStatusSchema = exports.zNotificationMessageStatusSchema = exports.zNotificationChannelTypeSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const zod_schemas_1 = require("../shared/zod-schemas");
6
6
  const zod_schemas_2 = require("../evo-task/zod-schemas");
@@ -132,6 +132,11 @@ exports.zNotificationLogSchema = zod_schemas_1.zFireDocSchema
132
132
  at: zod_1.z.coerce.date(),
133
133
  })
134
134
  .passthrough();
135
+ // ---- feat-165: Meta Direct Send intent (INotificationDirectSend) ----
136
+ exports.zNotificationDirectSendSchema = zod_1.z.object({
137
+ category: zod_1.z.literal("utility"),
138
+ ttl_seconds: zod_1.z.number().int().min(30).max(43200).optional(),
139
+ });
135
140
  // ---- HTTP direct send (INotificationSendPayload + tenant + externalLinks) ----
136
141
  exports.zDirectSendPayloadSchema = zod_1.z
137
142
  .object({
@@ -144,6 +149,7 @@ exports.zDirectSendPayloadSchema = zod_1.z
144
149
  template: exports.zNotificationTemplateRefSchema.optional(),
145
150
  /** WhatsApp session text (no HSM). Max length per Meta. */
146
151
  body_text: zod_1.z.string().max(4096).optional(),
152
+ direct_send: exports.zNotificationDirectSendSchema.optional(),
147
153
  variables: zod_1.z.record(zod_1.z.unknown()).optional(),
148
154
  routine: zod_1.z
149
155
  .object({
@@ -198,6 +204,7 @@ exports.zNexusDirectSendPayloadSchema = zod_1.z
198
204
  channel: exports.zNotificationChannelRefSchema,
199
205
  template: exports.zNotificationTemplateRefSchema.optional(),
200
206
  body_text: zod_1.z.string().max(4096).optional(),
207
+ direct_send: exports.zNotificationDirectSendSchema.optional(),
201
208
  variables: zod_1.z.record(zod_1.z.unknown()).optional(),
202
209
  routine: zod_1.z
203
210
  .object({
@@ -146,6 +146,13 @@ export const zNotificationLogSchema = zFireDocSchema
146
146
  })
147
147
  .passthrough();
148
148
 
149
+ // ---- feat-165: Meta Direct Send intent (INotificationDirectSend) ----
150
+
151
+ export const zNotificationDirectSendSchema = z.object({
152
+ category: z.literal("utility"),
153
+ ttl_seconds: z.number().int().min(30).max(43200).optional(),
154
+ });
155
+
149
156
  // ---- HTTP direct send (INotificationSendPayload + tenant + externalLinks) ----
150
157
 
151
158
  export const zDirectSendPayloadSchema = z
@@ -159,6 +166,7 @@ export const zDirectSendPayloadSchema = z
159
166
  template: zNotificationTemplateRefSchema.optional(),
160
167
  /** WhatsApp session text (no HSM). Max length per Meta. */
161
168
  body_text: z.string().max(4096).optional(),
169
+ direct_send: zNotificationDirectSendSchema.optional(),
162
170
  variables: z.record(z.unknown()).optional(),
163
171
  routine: z
164
172
  .object({
@@ -219,6 +227,7 @@ export const zNexusDirectSendPayloadSchema = z
219
227
  channel: zNotificationChannelRefSchema,
220
228
  template: zNotificationTemplateRefSchema.optional(),
221
229
  body_text: z.string().max(4096).optional(),
230
+ direct_send: zNotificationDirectSendSchema.optional(),
222
231
  variables: z.record(z.unknown()).optional(),
223
232
  routine: z
224
233
  .object({