orbitx-core-models 11.127.0 → 11.128.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/interfaces/chat.interface.d.ts +11 -0
- package/dist/interfaces/chat.interface.d.ts.map +1 -1
- package/dist/interfaces/ticket.interface.d.ts +17 -0
- package/dist/interfaces/ticket.interface.d.ts.map +1 -1
- package/dist/models/chat.model.d.ts.map +1 -1
- package/dist/models/chat.model.js +9 -0
- package/dist/models/ticket.model.d.ts.map +1 -1
- package/dist/models/ticket.model.js +12 -0
- package/package.json +1 -1
|
@@ -32,6 +32,17 @@ export interface IChat {
|
|
|
32
32
|
}>;
|
|
33
33
|
status: "waiting" | "active" | "shelved" | "ended";
|
|
34
34
|
leadStatus: "none" | "sent" | "unsent";
|
|
35
|
+
/** Set by chat-service's missed-chat.worker.js. "timeout" = sat in
|
|
36
|
+
* status:"waiting" too long with no agent; "abandoned" = the visitor
|
|
37
|
+
* disconnected while still waiting. Purely observational -- doesn't
|
|
38
|
+
* change routing. Unset while a chat hasn't been flagged. */
|
|
39
|
+
missedReason?: "timeout" | "abandoned";
|
|
40
|
+
missedAt?: Date;
|
|
41
|
+
/** Stamped by chatforce-backend's visitor socket handler when a visitor's
|
|
42
|
+
* connection drops while their chat is still status:"waiting"; cleared on
|
|
43
|
+
* reconnect. missed-chat.worker.js promotes this to missedReason:"abandoned"
|
|
44
|
+
* after a short grace period. */
|
|
45
|
+
visitorDisconnectedAt?: Date;
|
|
35
46
|
routingScenario: "OXP_24_7" | "OXP_BUSINESS_HOURS" | "CLIENT_HOURS_OXP_AFTER" | "CLIENT_AND_OXP_HOURS";
|
|
36
47
|
initiatedVia: "CTA_FLOAT" | "CTA_WIDGET" | "DIRECT_MESSAGE" | "EXIT_POPUP";
|
|
37
48
|
ipAddress?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/chat.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,WAAW,KAAK;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC1B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC1B,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC/B,aAAa,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACjD,YAAY,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;QACvB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;QACzB,SAAS,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;QACnC,QAAQ,CAAC,EAAE,IAAI,CAAC;QAChB,MAAM,CAAC,EAAE,IAAI,CAAC;KACf,CAAC,CAAC;IACH,YAAY,EAAE,KAAK,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC1B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;QACxD,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,UAAU,CAAC,EAAE,IAAI,CAAC;KACnB,CAAC,CAAC;IACH,eAAe,EAAE,KAAK,CAAC;QACrB,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC1B,IAAI,CAAC,EAAE,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,CAAC;QAC9D,EAAE,CAAC,EAAE,IAAI,CAAC;KACX,CAAC,CAAC;IACH,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IACnD,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACvC,eAAe,EACX,UAAU,GACV,oBAAoB,GACpB,wBAAwB,GACxB,sBAAsB,CAAC;IAC3B,YAAY,EAAE,WAAW,GAAG,YAAY,GAAG,gBAAgB,GAAG,YAAY,CAAC;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC9B,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"chat.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/chat.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,21 @@ export interface ITicketAttachment {
|
|
|
37
37
|
mimeType: string;
|
|
38
38
|
size: number;
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* A single entry in a ticket's message thread. Client-visible and
|
|
42
|
+
* internal-only notes live in the same array, distinguished by
|
|
43
|
+
* `isInternal` -- every client-facing read path (client-backend's
|
|
44
|
+
* controllers) must filter those out before responding.
|
|
45
|
+
*/
|
|
46
|
+
export interface ITicketMessage {
|
|
47
|
+
_id?: Types.ObjectId;
|
|
48
|
+
authorType: "ops" | "client";
|
|
49
|
+
authorId?: Types.ObjectId;
|
|
50
|
+
authorName?: string;
|
|
51
|
+
body: string;
|
|
52
|
+
isInternal: boolean;
|
|
53
|
+
createdAt: Date;
|
|
54
|
+
}
|
|
40
55
|
export interface ITicket extends Document {
|
|
41
56
|
ticketId: string;
|
|
42
57
|
ownerType: TicketOwnerType;
|
|
@@ -56,7 +71,9 @@ export interface ITicket extends Document {
|
|
|
56
71
|
/** Sender's email for an email-created ticket, or the requester's known email for reference. */
|
|
57
72
|
requesterEmail?: string;
|
|
58
73
|
status: TicketStatus;
|
|
74
|
+
/** Legacy single-field reply, superseded by `messages` -- kept read-only for continuity on older tickets. */
|
|
59
75
|
remarks?: string;
|
|
76
|
+
messages?: ITicketMessage[];
|
|
60
77
|
resolvedBy?: Types.ObjectId;
|
|
61
78
|
resolvedAt?: Date;
|
|
62
79
|
createdAt?: Date;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/ticket.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAEhG;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAC7B,2BAA2B,GAC3B,cAAc,GACd,gBAAgB,GAChB,yBAAyB,GACzB,OAAO,CAAC;AAEZ,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAE1E,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,EAI1D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,qBAAqB,EAM5D,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC7B,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC5B,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"ticket.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/ticket.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAEhG;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAC7B,2BAA2B,GAC3B,cAAc,GACd,gBAAgB,GAChB,yBAAyB,GACzB,OAAO,CAAC;AAEZ,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAE1E,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,EAI1D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,qBAAqB,EAM5D,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IACrB,UAAU,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC7B,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,6GAA6G;IAC7G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC5B,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.model.d.ts","sourceRoot":"","sources":["../../src/models/chat.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.model.d.ts","sourceRoot":"","sources":["../../src/models/chat.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AA6PrD,eAAO,MAAM,IAAI;;;;OAA4C,CAAC"}
|
|
@@ -153,6 +153,15 @@ const chatSchema = new mongoose_1.Schema({
|
|
|
153
153
|
default: "none",
|
|
154
154
|
},
|
|
155
155
|
// ─────────────────────────────────────────────
|
|
156
|
+
// MISSED CHAT TRACKING (timeout / abandonment, tracked separately)
|
|
157
|
+
// ─────────────────────────────────────────────
|
|
158
|
+
missedReason: {
|
|
159
|
+
type: String,
|
|
160
|
+
enum: ["timeout", "abandoned"],
|
|
161
|
+
},
|
|
162
|
+
missedAt: Date,
|
|
163
|
+
visitorDisconnectedAt: Date,
|
|
164
|
+
// ─────────────────────────────────────────────
|
|
156
165
|
// ROUTING META
|
|
157
166
|
// ─────────────────────────────────────────────
|
|
158
167
|
routingScenario: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket.model.d.ts","sourceRoot":"","sources":["../../src/models/ticket.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"ticket.model.d.ts","sourceRoot":"","sources":["../../src/models/ticket.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAqC,MAAM,gCAAgC,CAAC;AAyK5F,eAAO,MAAM,MAAM;;;;OAAkD,CAAC;AACtE,eAAe,MAAM,CAAC"}
|
|
@@ -43,6 +43,14 @@ const ticketAttachmentSchema = new mongoose_1.Schema({
|
|
|
43
43
|
mimeType: { type: String, required: true, trim: true },
|
|
44
44
|
size: { type: Number, required: true, min: 0 },
|
|
45
45
|
}, { _id: false });
|
|
46
|
+
const ticketMessageSchema = new mongoose_1.Schema({
|
|
47
|
+
authorType: { type: String, enum: ["ops", "client"], required: true },
|
|
48
|
+
authorId: { type: mongoose_1.Schema.Types.ObjectId },
|
|
49
|
+
authorName: { type: String, trim: true },
|
|
50
|
+
body: { type: String, required: true, trim: true, maxlength: 5000 },
|
|
51
|
+
isInternal: { type: Boolean, default: false },
|
|
52
|
+
createdAt: { type: Date, default: Date.now },
|
|
53
|
+
}, { _id: true });
|
|
46
54
|
const ticketSchema = new mongoose_1.Schema({
|
|
47
55
|
ticketId: {
|
|
48
56
|
type: String,
|
|
@@ -114,6 +122,10 @@ const ticketSchema = new mongoose_1.Schema({
|
|
|
114
122
|
trim: true,
|
|
115
123
|
maxlength: [5000, "Remarks cannot exceed 5000 characters"],
|
|
116
124
|
},
|
|
125
|
+
messages: {
|
|
126
|
+
type: [ticketMessageSchema],
|
|
127
|
+
default: [],
|
|
128
|
+
},
|
|
117
129
|
resolvedBy: {
|
|
118
130
|
type: mongoose_1.Schema.Types.ObjectId,
|
|
119
131
|
ref: "User",
|