evo360-types 1.3.687 → 1.3.693
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/apps/evo-chat/inbox/zod-schemas.d.ts +6 -0
- package/dist/apps/evo-chat/inbox/zod-schemas.js +3 -0
- package/dist/apps/evo-chat/inbox/zod-schemas.ts +3 -0
- package/dist/apps/evo-crm/lead/zod-schemas.d.ts +9 -0
- package/dist/apps/evo-crm/lead/zod-schemas.js +6 -1
- package/dist/apps/evo-crm/lead/zod-schemas.ts +6 -0
- package/dist/apps/evo-med/appointment/zod-schemas.d.ts +3 -0
- package/dist/apps/evo-med/appointment/zod-schemas.js +2 -0
- package/dist/apps/evo-med/appointment/zod-schemas.ts +3 -0
- package/dist/types/evo-chat/inbox/index.d.ts +6 -0
- package/dist/types/evo-chat/inbox/index.ts +6 -0
- package/dist/types/evo-crm/lead/index.d.ts +4 -0
- package/dist/types/evo-crm/lead/index.ts +5 -0
- package/dist/types/evo-med/appointment/index.d.ts +2 -0
- package/dist/types/evo-med/appointment/index.ts +3 -0
- package/package.json +1 -1
|
@@ -128,6 +128,8 @@ export declare const zInboxItemSchema: z.ZodObject<{
|
|
|
128
128
|
last_message_channel_id: z.ZodOptional<z.ZodString>;
|
|
129
129
|
unread_count: z.ZodOptional<z.ZodNumber>;
|
|
130
130
|
contact_name: z.ZodOptional<z.ZodString>;
|
|
131
|
+
/** feat-273: categoria do lead denormalizada; null = comum. */
|
|
132
|
+
lead_special_kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<["doctor", "employee", "secretary"]>>>;
|
|
131
133
|
contact_address: z.ZodOptional<z.ZodString>;
|
|
132
134
|
updated_at: z.ZodOptional<z.ZodDate>;
|
|
133
135
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
@@ -151,6 +153,8 @@ export declare const zInboxItemSchema: z.ZodObject<{
|
|
|
151
153
|
last_message_channel_id: z.ZodOptional<z.ZodString>;
|
|
152
154
|
unread_count: z.ZodOptional<z.ZodNumber>;
|
|
153
155
|
contact_name: z.ZodOptional<z.ZodString>;
|
|
156
|
+
/** feat-273: categoria do lead denormalizada; null = comum. */
|
|
157
|
+
lead_special_kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<["doctor", "employee", "secretary"]>>>;
|
|
154
158
|
contact_address: z.ZodOptional<z.ZodString>;
|
|
155
159
|
updated_at: z.ZodOptional<z.ZodDate>;
|
|
156
160
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
@@ -174,6 +178,8 @@ export declare const zInboxItemSchema: z.ZodObject<{
|
|
|
174
178
|
last_message_channel_id: z.ZodOptional<z.ZodString>;
|
|
175
179
|
unread_count: z.ZodOptional<z.ZodNumber>;
|
|
176
180
|
contact_name: z.ZodOptional<z.ZodString>;
|
|
181
|
+
/** feat-273: categoria do lead denormalizada; null = comum. */
|
|
182
|
+
lead_special_kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<["doctor", "employee", "secretary"]>>>;
|
|
177
183
|
contact_address: z.ZodOptional<z.ZodString>;
|
|
178
184
|
updated_at: z.ZodOptional<z.ZodDate>;
|
|
179
185
|
}, z.ZodTypeAny, "passthrough">>;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.zInboxSubscriptionSchema = exports.zInboxItemSchema = exports.zInboxMemberSchema = exports.zInboxMemberPermissionsSchema = exports.zInboxSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
const zod_schemas_1 = require("../../evo-crm/lead/zod-schemas");
|
|
5
6
|
exports.zInboxSchema = zod_1.z.object({
|
|
6
7
|
id: zod_1.z.string(),
|
|
7
8
|
model_ver: zod_1.z.number().default(1),
|
|
@@ -46,6 +47,8 @@ exports.zInboxItemSchema = zod_1.z.object({
|
|
|
46
47
|
last_message_channel_id: zod_1.z.string().optional(),
|
|
47
48
|
unread_count: zod_1.z.number().optional(),
|
|
48
49
|
contact_name: zod_1.z.string().optional(),
|
|
50
|
+
/** feat-273: categoria do lead denormalizada; null = comum. */
|
|
51
|
+
lead_special_kind: zod_schemas_1.zLeadSpecialKindSchema.nullable().optional(),
|
|
49
52
|
contact_address: zod_1.z.string().optional(),
|
|
50
53
|
updated_at: zod_1.z.coerce.date().optional(),
|
|
51
54
|
}).passthrough();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { zLeadSpecialKindSchema } from "../../evo-crm/lead/zod-schemas";
|
|
2
3
|
|
|
3
4
|
export const zInboxSchema = z.object({
|
|
4
5
|
id: z.string(),
|
|
@@ -47,6 +48,8 @@ export const zInboxItemSchema = z.object({
|
|
|
47
48
|
last_message_channel_id: z.string().optional(),
|
|
48
49
|
unread_count: z.number().optional(),
|
|
49
50
|
contact_name: z.string().optional(),
|
|
51
|
+
/** feat-273: categoria do lead denormalizada; null = comum. */
|
|
52
|
+
lead_special_kind: zLeadSpecialKindSchema.nullable().optional(),
|
|
50
53
|
contact_address: z.string().optional(),
|
|
51
54
|
updated_at: z.coerce.date().optional(),
|
|
52
55
|
}).passthrough();
|
|
@@ -48,6 +48,9 @@ export declare const zLeadReactivationSchema: z.ZodObject<{
|
|
|
48
48
|
last_no_interaction_close_at: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
49
49
|
last_reactivation_at: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
50
50
|
}, z.ZodTypeAny, "passthrough">>;
|
|
51
|
+
/** feat-273: categorias de contato especial no Omni. */
|
|
52
|
+
export declare const LEAD_SPECIAL_KINDS: readonly ["doctor", "employee", "secretary"];
|
|
53
|
+
export declare const zLeadSpecialKindSchema: z.ZodEnum<["doctor", "employee", "secretary"]>;
|
|
51
54
|
export declare const zLeadSchema: z.ZodObject<{
|
|
52
55
|
id: z.ZodString;
|
|
53
56
|
ref: z.ZodAny;
|
|
@@ -310,6 +313,8 @@ export declare const zLeadSchema: z.ZodObject<{
|
|
|
310
313
|
last_no_interaction_close_at: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
311
314
|
last_reactivation_at: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
312
315
|
}, z.ZodTypeAny, "passthrough">>>>;
|
|
316
|
+
/** feat-273: categoria do contato no Omni; null limpa. */
|
|
317
|
+
special_kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<["doctor", "employee", "secretary"]>>>;
|
|
313
318
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
314
319
|
id: z.ZodString;
|
|
315
320
|
ref: z.ZodAny;
|
|
@@ -572,6 +577,8 @@ export declare const zLeadSchema: z.ZodObject<{
|
|
|
572
577
|
last_no_interaction_close_at: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
573
578
|
last_reactivation_at: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
574
579
|
}, z.ZodTypeAny, "passthrough">>>>;
|
|
580
|
+
/** feat-273: categoria do contato no Omni; null limpa. */
|
|
581
|
+
special_kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<["doctor", "employee", "secretary"]>>>;
|
|
575
582
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
576
583
|
id: z.ZodString;
|
|
577
584
|
ref: z.ZodAny;
|
|
@@ -834,4 +841,6 @@ export declare const zLeadSchema: z.ZodObject<{
|
|
|
834
841
|
last_no_interaction_close_at: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
835
842
|
last_reactivation_at: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
836
843
|
}, z.ZodTypeAny, "passthrough">>>>;
|
|
844
|
+
/** feat-273: categoria do contato no Omni; null limpa. */
|
|
845
|
+
special_kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<["doctor", "employee", "secretary"]>>>;
|
|
837
846
|
}, z.ZodTypeAny, "passthrough">>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.zLeadSchema = exports.zLeadReactivationSchema = exports.zLeadDistChannelSchema = exports.zLeadQualificationSchema = exports.zLeadStatusSchema = void 0;
|
|
3
|
+
exports.zLeadSchema = exports.zLeadSpecialKindSchema = exports.LEAD_SPECIAL_KINDS = exports.zLeadReactivationSchema = exports.zLeadDistChannelSchema = exports.zLeadQualificationSchema = exports.zLeadStatusSchema = 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-people/zod-schemas");
|
|
@@ -28,6 +28,9 @@ exports.zLeadReactivationSchema = zod_1.z
|
|
|
28
28
|
last_reactivation_at: zod_1.z.coerce.date().nullable().optional(),
|
|
29
29
|
})
|
|
30
30
|
.passthrough();
|
|
31
|
+
/** feat-273: categorias de contato especial no Omni. */
|
|
32
|
+
exports.LEAD_SPECIAL_KINDS = ['doctor', 'employee', 'secretary'];
|
|
33
|
+
exports.zLeadSpecialKindSchema = zod_1.z.enum(exports.LEAD_SPECIAL_KINDS);
|
|
31
34
|
exports.zLeadSchema = zod_schemas_2.zProfileSchema // Extend from ProfileSchema
|
|
32
35
|
.extend({
|
|
33
36
|
external_id: zod_1.z.string().nullable().optional(),
|
|
@@ -59,5 +62,7 @@ exports.zLeadSchema = zod_schemas_2.zProfileSchema // Extend from ProfileSchema
|
|
|
59
62
|
capture_data: zod_schemas_1.zCaptureDataMapSchema.nullable().optional(),
|
|
60
63
|
userRef: zod_1.z.any(),
|
|
61
64
|
reactivation: exports.zLeadReactivationSchema.nullable().optional(),
|
|
65
|
+
/** feat-273: categoria do contato no Omni; null limpa. */
|
|
66
|
+
special_kind: exports.zLeadSpecialKindSchema.nullable().optional(),
|
|
62
67
|
})
|
|
63
68
|
.passthrough();
|
|
@@ -35,6 +35,10 @@ export const zLeadReactivationSchema = z
|
|
|
35
35
|
})
|
|
36
36
|
.passthrough();
|
|
37
37
|
|
|
38
|
+
/** feat-273: categorias de contato especial no Omni. */
|
|
39
|
+
export const LEAD_SPECIAL_KINDS = ['doctor', 'employee', 'secretary'] as const;
|
|
40
|
+
export const zLeadSpecialKindSchema = z.enum(LEAD_SPECIAL_KINDS);
|
|
41
|
+
|
|
38
42
|
export const zLeadSchema = zProfileSchema // Extend from ProfileSchema
|
|
39
43
|
.extend({
|
|
40
44
|
external_id: z.string().nullable().optional(),
|
|
@@ -66,5 +70,7 @@ export const zLeadSchema = zProfileSchema // Extend from ProfileSchema
|
|
|
66
70
|
capture_data: zCaptureDataMapSchema.nullable().optional(),
|
|
67
71
|
userRef: z.any(),
|
|
68
72
|
reactivation: zLeadReactivationSchema.nullable().optional(),
|
|
73
|
+
/** feat-273: categoria do contato no Omni; null limpa. */
|
|
74
|
+
special_kind: zLeadSpecialKindSchema.nullable().optional(),
|
|
69
75
|
})
|
|
70
76
|
.passthrough();
|
|
@@ -699,6 +699,7 @@ export declare const zAppointmentSchema: z.ZodObject<{
|
|
|
699
699
|
display_name: z.ZodNullable<z.ZodString>;
|
|
700
700
|
source: z.ZodEnum<["ui_omni", "ui_calendar", "hubia", "mcp"]>;
|
|
701
701
|
}, z.ZodTypeAny, "passthrough">>>>;
|
|
702
|
+
hubia_proposal_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
702
703
|
tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
703
704
|
name: z.ZodString;
|
|
704
705
|
color: z.ZodOptional<z.ZodString>;
|
|
@@ -1065,6 +1066,7 @@ export declare const zAppointmentSchema: z.ZodObject<{
|
|
|
1065
1066
|
display_name: z.ZodNullable<z.ZodString>;
|
|
1066
1067
|
source: z.ZodEnum<["ui_omni", "ui_calendar", "hubia", "mcp"]>;
|
|
1067
1068
|
}, z.ZodTypeAny, "passthrough">>>>;
|
|
1069
|
+
hubia_proposal_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1068
1070
|
tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
1069
1071
|
name: z.ZodString;
|
|
1070
1072
|
color: z.ZodOptional<z.ZodString>;
|
|
@@ -1431,6 +1433,7 @@ export declare const zAppointmentSchema: z.ZodObject<{
|
|
|
1431
1433
|
display_name: z.ZodNullable<z.ZodString>;
|
|
1432
1434
|
source: z.ZodEnum<["ui_omni", "ui_calendar", "hubia", "mcp"]>;
|
|
1433
1435
|
}, z.ZodTypeAny, "passthrough">>>>;
|
|
1436
|
+
hubia_proposal_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1434
1437
|
tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
1435
1438
|
name: z.ZodString;
|
|
1436
1439
|
color: z.ZodOptional<z.ZodString>;
|
|
@@ -248,6 +248,8 @@ exports.zAppointmentSchema = zod_schemas_1.zFireDocSchema
|
|
|
248
248
|
status_external_id: zod_1.z.coerce.string().nullable().optional(),
|
|
249
249
|
// feat-193 F4 — solicitante. Local (a agenda externa não conhece o campo).
|
|
250
250
|
requested_by: exports.zAppointmentRequestedBySchema.nullable().optional(),
|
|
251
|
+
// feat-271 F2 — proposta da HubIA que originou o agendamento (aceita pela secretária).
|
|
252
|
+
hubia_proposal_id: zod_1.z.string().nullable().optional(),
|
|
251
253
|
tags: zod_1.z.array(zod_schemas_1.zTagSchema).nullable().optional(),
|
|
252
254
|
})
|
|
253
255
|
.passthrough();
|
|
@@ -275,6 +275,9 @@ export const zAppointmentSchema = zFireDocSchema
|
|
|
275
275
|
// feat-193 F4 — solicitante. Local (a agenda externa não conhece o campo).
|
|
276
276
|
requested_by: zAppointmentRequestedBySchema.nullable().optional(),
|
|
277
277
|
|
|
278
|
+
// feat-271 F2 — proposta da HubIA que originou o agendamento (aceita pela secretária).
|
|
279
|
+
hubia_proposal_id: z.string().nullable().optional(),
|
|
280
|
+
|
|
278
281
|
tags: z.array(zTagSchema).nullable().optional(),
|
|
279
282
|
})
|
|
280
283
|
.passthrough();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IFireGlobalDoc } from "../../shared";
|
|
2
|
+
import type { LeadSpecialKind } from "../../evo-crm/lead";
|
|
2
3
|
export type InboxType = 'personal' | 'team' | 'supervisor_view';
|
|
3
4
|
export type InboxStatus = 'active' | 'paused' | 'disabled';
|
|
4
5
|
export type InboxMemberRole = 'viewer' | 'agent' | 'admin';
|
|
@@ -94,6 +95,11 @@ export interface IInboxItem {
|
|
|
94
95
|
*/
|
|
95
96
|
next_task_due_at?: Date | null;
|
|
96
97
|
contact_name?: string;
|
|
98
|
+
/**
|
|
99
|
+
* feat-273: categoria do lead, denormalizada pelo inbox-handler a cada evento.
|
|
100
|
+
* null = contato comum; ausente = desconhecido (item legado).
|
|
101
|
+
*/
|
|
102
|
+
lead_special_kind?: LeadSpecialKind | null;
|
|
97
103
|
contact_address?: string;
|
|
98
104
|
updated_at?: Date;
|
|
99
105
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IFireGlobalDoc } from "../../shared";
|
|
2
|
+
import type { LeadSpecialKind } from "../../evo-crm/lead";
|
|
2
3
|
|
|
3
4
|
// ── Inbox types ──
|
|
4
5
|
|
|
@@ -113,6 +114,11 @@ export interface IInboxItem {
|
|
|
113
114
|
*/
|
|
114
115
|
next_task_due_at?: Date | null;
|
|
115
116
|
contact_name?: string;
|
|
117
|
+
/**
|
|
118
|
+
* feat-273: categoria do lead, denormalizada pelo inbox-handler a cada evento.
|
|
119
|
+
* null = contato comum; ausente = desconhecido (item legado).
|
|
120
|
+
*/
|
|
121
|
+
lead_special_kind?: LeadSpecialKind | null;
|
|
116
122
|
contact_address?: string;
|
|
117
123
|
updated_at?: Date;
|
|
118
124
|
}
|
|
@@ -91,6 +91,8 @@ export interface ILeadReactivation {
|
|
|
91
91
|
/** Quando a última mensagem de reativação foi efetivamente enviada. */
|
|
92
92
|
last_reactivation_at?: Date | null;
|
|
93
93
|
}
|
|
94
|
+
/** feat-273: categoria de contato especial. */
|
|
95
|
+
export type LeadSpecialKind = 'doctor' | 'employee' | 'secretary';
|
|
94
96
|
export interface ILead extends IProfile {
|
|
95
97
|
external_id?: string | null;
|
|
96
98
|
social_id?: string | null;
|
|
@@ -140,6 +142,8 @@ export interface ILead extends IProfile {
|
|
|
140
142
|
} | null;
|
|
141
143
|
acquisition_sources?: ILeadReferral[] | null;
|
|
142
144
|
reactivation?: ILeadReactivation | null;
|
|
145
|
+
/** feat-273: categoria do contato no Omni (anel + ícone no avatar). null/ausente = contato comum. */
|
|
146
|
+
special_kind?: LeadSpecialKind | null;
|
|
143
147
|
/**
|
|
144
148
|
* Provider que originou o lead: `chatbee`, `hub-waba`, `hub-instagram`,
|
|
145
149
|
* `waba-history`, `campaign`... Escrito desde sempre pelos dois criadores de
|
|
@@ -134,6 +134,9 @@ export interface ILeadReactivation {
|
|
|
134
134
|
last_reactivation_at?: Date | null;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
+
/** feat-273: categoria de contato especial. */
|
|
138
|
+
export type LeadSpecialKind = 'doctor' | 'employee' | 'secretary';
|
|
139
|
+
|
|
137
140
|
export interface ILead extends IProfile {
|
|
138
141
|
external_id?: string | null; // ID externo do paciente
|
|
139
142
|
social_id?: string | null; //CPF
|
|
@@ -187,6 +190,8 @@ export interface ILead extends IProfile {
|
|
|
187
190
|
acquisition_sources?: ILeadReferral[] | null;
|
|
188
191
|
// Régua de reativação (feat-037) — mantida pelo subscriber ticket_closed + task lead_reactivation.
|
|
189
192
|
reactivation?: ILeadReactivation | null;
|
|
193
|
+
/** feat-273: categoria do contato no Omni (anel + ícone no avatar). null/ausente = contato comum. */
|
|
194
|
+
special_kind?: LeadSpecialKind | null;
|
|
190
195
|
/**
|
|
191
196
|
* Provider que originou o lead: `chatbee`, `hub-waba`, `hub-instagram`,
|
|
192
197
|
* `waba-history`, `campaign`... Escrito desde sempre pelos dois criadores de
|
|
@@ -225,6 +225,8 @@ export interface IAppointment extends IFireDoc {
|
|
|
225
225
|
draftExpirationMinutes?: number | null;
|
|
226
226
|
/** feat-193 F4 — solicitante do agendamento. Ver `IAppointmentRequestedBy`. */
|
|
227
227
|
requested_by?: IAppointmentRequestedBy | null;
|
|
228
|
+
/** feat-271 F2 — proposta da HubIA (evento `hubia_proposal` na thread) que originou este agendamento. */
|
|
229
|
+
hubia_proposal_id?: string | null;
|
|
228
230
|
tags?: ITag[] | null;
|
|
229
231
|
[key: string]: unknown;
|
|
230
232
|
}
|
|
@@ -293,6 +293,9 @@ export interface IAppointment extends IFireDoc {
|
|
|
293
293
|
/** feat-193 F4 — solicitante do agendamento. Ver `IAppointmentRequestedBy`. */
|
|
294
294
|
requested_by?: IAppointmentRequestedBy | null;
|
|
295
295
|
|
|
296
|
+
/** feat-271 F2 — proposta da HubIA (evento `hubia_proposal` na thread) que originou este agendamento. */
|
|
297
|
+
hubia_proposal_id?: string | null;
|
|
298
|
+
|
|
296
299
|
tags?: ITag[] | null;
|
|
297
300
|
[key: string]: unknown; // index signature
|
|
298
301
|
}
|