orbitx-core-models 11.41.1 → 11.45.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.
Files changed (40) hide show
  1. package/dist/index.d.ts +6 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -1
  4. package/dist/interfaces/chat.interface.d.ts +48 -18
  5. package/dist/interfaces/chat.interface.d.ts.map +1 -1
  6. package/dist/interfaces/company.interface.d.ts +5 -0
  7. package/dist/interfaces/company.interface.d.ts.map +1 -1
  8. package/dist/interfaces/group.interface.d.ts +17 -0
  9. package/dist/interfaces/group.interface.d.ts.map +1 -0
  10. package/dist/interfaces/group.interface.js +2 -0
  11. package/dist/interfaces/lead.interface.d.ts +27 -6
  12. package/dist/interfaces/lead.interface.d.ts.map +1 -1
  13. package/dist/interfaces/message.interface.d.ts +22 -7
  14. package/dist/interfaces/message.interface.d.ts.map +1 -1
  15. package/dist/interfaces/user.interface.d.ts +14 -9
  16. package/dist/interfaces/user.interface.d.ts.map +1 -1
  17. package/dist/interfaces/visitor.interface.d.ts +31 -0
  18. package/dist/interfaces/visitor.interface.d.ts.map +1 -0
  19. package/dist/interfaces/visitor.interface.js +2 -0
  20. package/dist/models/chat.model.d.ts +1 -1
  21. package/dist/models/chat.model.d.ts.map +1 -1
  22. package/dist/models/chat.model.js +163 -20
  23. package/dist/models/company.model.d.ts.map +1 -1
  24. package/dist/models/company.model.js +6 -0
  25. package/dist/models/group.model.d.ts +8 -0
  26. package/dist/models/group.model.d.ts.map +1 -0
  27. package/dist/models/group.model.js +90 -0
  28. package/dist/models/lead.model.d.ts.map +1 -1
  29. package/dist/models/lead.model.js +128 -3
  30. package/dist/models/message.model.d.ts +2 -2
  31. package/dist/models/message.model.d.ts.map +1 -1
  32. package/dist/models/message.model.js +77 -4
  33. package/dist/models/tierProgress.model.d.ts +1 -1
  34. package/dist/models/user.model.d.ts +1 -1
  35. package/dist/models/user.model.d.ts.map +1 -1
  36. package/dist/models/user.model.js +91 -15
  37. package/dist/models/visitor.model.d.ts +8 -0
  38. package/dist/models/visitor.model.d.ts.map +1 -0
  39. package/dist/models/visitor.model.js +119 -0
  40. package/package.json +37 -37
package/dist/index.d.ts CHANGED
@@ -18,6 +18,8 @@ import { PlanOption } from "./models/plan-options.model";
18
18
  import { Plan } from "./models/plan.model";
19
19
  import { Product } from "./models/product.model";
20
20
  import { Subscription } from "./models/subscription.model";
21
+ import { Visitor } from "@models/visitor.model";
22
+ import { Group } from "@models/group.model";
21
23
  import { IChat } from "./interfaces/chat.interface";
22
24
  import { IMacro } from "./interfaces/macro.interface";
23
25
  import { IVertical } from "./interfaces/vertical.interface";
@@ -38,6 +40,8 @@ import { IPlanOption } from "./interfaces/plan-options.interface";
38
40
  import { IPlan } from "./interfaces/plan.interface";
39
41
  import { IProduct } from "./interfaces/product.interface";
40
42
  import { ISubscription } from "./interfaces/subscription.interface";
41
- export { Chat, Message, User, Vertical, Macro, Partner, Company, Review, Wallet, StripeLog, Transaction, Lead, TierConfig, TierProgress, MonthlyTierSnapshot, Product, Plan, PlanOption, Addon, Subscription };
42
- export type { IChat, IMessage, IUser, IVertical, IMacro, IPartner, ICompany, IReview, IWallet, IStripeLog, ITransaction, ILead, ITierConfig, ITierProgress, IMonthlyTierSnapshot, IProduct, IPlan, IPlanOption, IAddon, ISubscription };
43
+ import { IVisitor } from "@interfaces/visitor.interface";
44
+ import { IGroup } from "@interfaces/group.interface";
45
+ export { Chat, Message, User, Vertical, Macro, Partner, Company, Review, Wallet, StripeLog, Transaction, Lead, TierConfig, TierProgress, MonthlyTierSnapshot, Product, Plan, PlanOption, Addon, Subscription, Visitor, Group };
46
+ export type { IChat, IMessage, IUser, IVertical, IMacro, IPartner, ICompany, IReview, IWallet, IStripeLog, ITransaction, ILead, ITierConfig, ITierProgress, IMonthlyTierSnapshot, IProduct, IPlan, IPlanOption, IAddon, ISubscription, IVisitor, IGroup };
43
47
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Subscription = exports.Addon = exports.PlanOption = exports.Plan = exports.Product = exports.MonthlyTierSnapshot = exports.TierProgress = exports.TierConfig = exports.Lead = exports.Transaction = exports.StripeLog = exports.Wallet = exports.Review = exports.Company = exports.Partner = exports.Macro = exports.Vertical = exports.User = exports.Message = exports.Chat = void 0;
3
+ exports.Group = exports.Visitor = exports.Subscription = exports.Addon = exports.PlanOption = exports.Plan = exports.Product = exports.MonthlyTierSnapshot = exports.TierProgress = exports.TierConfig = exports.Lead = exports.Transaction = exports.StripeLog = exports.Wallet = exports.Review = exports.Company = exports.Partner = exports.Macro = exports.Vertical = exports.User = exports.Message = exports.Chat = void 0;
4
4
  // MODELS
5
5
  const chat_model_1 = require("./models/chat.model");
6
6
  Object.defineProperty(exports, "Chat", { enumerable: true, get: function () { return chat_model_1.Chat; } });
@@ -42,3 +42,7 @@ const product_model_1 = require("./models/product.model");
42
42
  Object.defineProperty(exports, "Product", { enumerable: true, get: function () { return product_model_1.Product; } });
43
43
  const subscription_model_1 = require("./models/subscription.model");
44
44
  Object.defineProperty(exports, "Subscription", { enumerable: true, get: function () { return subscription_model_1.Subscription; } });
45
+ const visitor_model_1 = require("@models/visitor.model");
46
+ Object.defineProperty(exports, "Visitor", { enumerable: true, get: function () { return visitor_model_1.Visitor; } });
47
+ const group_model_1 = require("@models/group.model");
48
+ Object.defineProperty(exports, "Group", { enumerable: true, get: function () { return group_model_1.Group; } });
@@ -1,25 +1,55 @@
1
- import { Document, Types } from "mongoose";
2
- export interface IChat extends Document {
1
+ export interface IChat {
2
+ _id?: string;
3
3
  chatNumber?: number;
4
- userId: Types.ObjectId;
5
- company: Types.ObjectId;
6
- domain: string;
7
- status: "open" | "closed" | "active" | "inactive" | "shelved";
4
+ companyId: string;
5
+ visitorId: string;
6
+ groupId: string;
7
+ domain?: string;
8
+ currentOwnerId: string;
9
+ ownershipType: "ORBITXPRO" | "CLIENT" | "SHARED";
10
+ participants: Array<{
11
+ userId: string;
12
+ role: "owner" | "viewer";
13
+ ownerType?: "ORBITXPRO" | "CLIENT";
14
+ joinedAt?: Date;
15
+ leftAt?: Date;
16
+ }>;
17
+ joinRequests: Array<{
18
+ requesterId: string;
19
+ targetId?: string;
20
+ status: "pending" | "approved" | "rejected" | "expired";
21
+ createdAt?: Date;
22
+ resolvedAt?: Date;
23
+ }>;
24
+ transferHistory: Array<{
25
+ fromUserId?: string;
26
+ toUserId?: string;
27
+ type?: "AGENT_TO_AGENT" | "OXP_TO_CLIENT" | "CLIENT_TAKEOVER";
28
+ at?: Date;
29
+ }>;
30
+ status: "waiting" | "active" | "shelved" | "ended";
8
31
  leadStatus: "none" | "sent" | "unsent";
9
- messages: Types.ObjectId[];
10
- isDeleted: boolean;
11
- leads?: Types.ObjectId[];
32
+ routingScenario: "OXP_24_7" | "OXP_BUSINESS_HOURS" | "CLIENT_HOURS_OXP_AFTER" | "CLIENT_AND_OXP_HOURS";
33
+ initiatedVia: "CTA_FLOAT" | "CTA_WIDGET" | "DIRECT_MESSAGE" | "EXIT_POPUP";
12
34
  ipAddress?: string;
13
- note?: string;
35
+ location?: string;
36
+ ga4Snapshot?: {
37
+ source?: string;
38
+ medium?: string;
39
+ keywords?: string;
40
+ };
41
+ referralUrl?: string;
42
+ lastMessageAt?: Date;
43
+ lastMessageType?: string;
44
+ agentLastReplied?: Date;
45
+ pickedUpAt?: Date;
46
+ endedAt?: Date;
47
+ endedBy?: string;
48
+ appointmentSet?: boolean;
49
+ leadId?: string;
50
+ sessionIndex?: number;
51
+ isDeleted?: boolean;
14
52
  createdAt?: Date;
15
53
  updatedAt?: Date;
16
- referrerUrl?: string;
17
- pickedUpBy?: string;
18
- pickedUpAt?: Date | null;
19
- endedAt?: Date | null;
20
- appointmentSet?: string;
21
- location?: string;
22
- source?: string;
23
- medium?: string;
24
54
  }
25
55
  //# sourceMappingURL=chat.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/chat.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,KAAM,SAAQ,QAAQ;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC9D,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"chat.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/chat.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACjD,YAAY,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,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,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,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,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,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;IACpB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
@@ -53,6 +53,10 @@ export interface IWidgetConfig {
53
53
  animation?: "bounce-in" | "fade" | "slide-up";
54
54
  features?: ("file-upload" | "emoji-support" | "sound" | "email-transcript")[];
55
55
  }
56
+ export interface IAvatar {
57
+ name?: string;
58
+ url?: string;
59
+ }
56
60
  export interface ICompany {
57
61
  _id?: Types.ObjectId;
58
62
  basicInfo: IBasicInfo;
@@ -64,6 +68,7 @@ export interface ICompany {
64
68
  stripeCustomerId?: string;
65
69
  isSubscriptionActive?: boolean;
66
70
  subscription?: Types.ObjectId;
71
+ avatars?: IAvatar[];
67
72
  createdAt?: Date;
68
73
  updatedAt?: Date;
69
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"company.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/company.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"company.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/company.interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import mongoose from "mongoose";
2
+ export interface IGroup {
3
+ _id?: mongoose.Types.ObjectId;
4
+ companyId: mongoose.Types.ObjectId;
5
+ name: string;
6
+ description?: string;
7
+ agents: Array<{
8
+ userId: mongoose.Types.ObjectId;
9
+ maxConcurrentChats?: number;
10
+ joinedAt: Date;
11
+ }>;
12
+ isActive: boolean;
13
+ priority: number;
14
+ createdAt?: Date;
15
+ updatedAt?: Date;
16
+ }
17
+ //# sourceMappingURL=group.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/group.interface.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC;QACZ,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,EAAE,IAAI,CAAC;KAChB,CAAC,CAAC;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,10 +1,10 @@
1
- import { Types } from "mongoose";
1
+ import mongoose from "mongoose";
2
2
  export interface ILeadData {
3
- name: string;
4
- email: string;
3
+ name?: string;
4
+ email?: string;
5
5
  companyName?: string;
6
6
  leadType?: string;
7
- phone: string;
7
+ phone?: string;
8
8
  category?: string;
9
9
  city?: string;
10
10
  address?: string;
@@ -14,8 +14,29 @@ export interface ILeadData {
14
14
  type?: string;
15
15
  }
16
16
  export interface ILead {
17
- _id?: Types.ObjectId;
18
- data: ILeadData;
17
+ _id?: mongoose.Types.ObjectId;
18
+ data?: ILeadData;
19
+ chatId?: mongoose.Types.ObjectId;
20
+ companyId: mongoose.Types.ObjectId;
21
+ agentId?: mongoose.Types.ObjectId;
22
+ visitorId?: mongoose.Types.ObjectId;
23
+ status?: "Sales" | "Service" | "Others";
24
+ isFlagged?: boolean;
25
+ flaggedAt?: Date;
26
+ flagReason?: "auto_combined" | "manual";
27
+ isSent?: boolean;
28
+ sentAt?: Date;
29
+ sentTo?: string;
30
+ resentAt?: Date;
31
+ resentBy?: mongoose.Types.ObjectId;
32
+ chatEndedAt?: Date;
33
+ isEmailVerified?: boolean;
34
+ isSecure?: boolean;
35
+ logs?: Array<{
36
+ event?: "lead_flagged" | "lead_sent" | "lead_resent" | "call_connect" | "appointment" | "retainer" | "cta_selected";
37
+ timestamp?: Date;
38
+ meta?: any;
39
+ }>;
19
40
  createdAt?: Date;
20
41
  updatedAt?: Date;
21
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lead.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/lead.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
1
+ {"version":3,"file":"lead.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/lead.interface.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IACjC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IACnC,OAAO,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IAClC,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IACnC,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC;QACX,KAAK,CAAC,EACF,cAAc,GACd,WAAW,GACX,aAAa,GACb,cAAc,GACd,aAAa,GACb,UAAU,GACV,cAAc,CAAC;QACnB,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
@@ -1,10 +1,25 @@
1
- import { Document, Types } from "mongoose";
2
- export interface IMessage extends Document {
3
- senderId: Types.ObjectId;
4
- macro?: Types.ObjectId;
5
- senderType: "user" | "agent-chat";
6
- message: string;
7
- isDeleted: boolean;
1
+ import { Schema } from "mongoose";
2
+ export interface IMessage {
3
+ chatId: Schema.Types.ObjectId;
4
+ companyId: Schema.Types.ObjectId;
5
+ senderType: "AGENT" | "VISITOR" | "SYSTEM";
6
+ senderId?: Schema.Types.ObjectId;
7
+ senderModel?: "User" | "Visitor";
8
+ type?: "text" | "note" | "media" | "system" | "cta" | "macro";
9
+ content?: string;
10
+ mediaUrl?: string;
11
+ mediaType?: string;
12
+ macroId?: Schema.Types.ObjectId;
13
+ ctaPayload?: any;
14
+ linkPreview?: {
15
+ url?: string;
16
+ title?: string;
17
+ description?: string;
18
+ image?: string;
19
+ };
20
+ deliveredAt?: Date;
21
+ readAt?: Date;
22
+ isDeleted?: boolean;
8
23
  createdAt?: Date;
9
24
  updatedAt?: Date;
10
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/message.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
1
+ {"version":3,"file":"message.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/message.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,QAAQ;IAEvB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAGjC,UAAU,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAGjC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;IAG9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAChC,UAAU,CAAC,EAAE,GAAG,CAAC;IAGjB,WAAW,CAAC,EAAE;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAGF,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,IAAI,CAAC;IAGd,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
@@ -1,18 +1,23 @@
1
- import { Document, Types } from "mongoose";
2
- export interface IUser extends Document {
1
+ import mongoose from "mongoose";
2
+ export interface IUser extends mongoose.Document {
3
3
  name?: string;
4
4
  email?: string;
5
5
  username?: string;
6
6
  password?: string;
7
- profile: string;
8
- role: "user" | "account-manager" | "manager-ops" | "admin" | "agent-chat";
9
- ownerType?: "Company" | "Partner" | "ORBITXPRO";
10
- owner?: Types.ObjectId;
7
+ profile?: string;
8
+ role: "user" | "account-manager" | "manager-ops" | "admin" | "agent-chat" | "client-operator" | "partner";
9
+ ownerType: "Company" | "Partner" | "ORBITXPRO";
10
+ owner: mongoose.Types.ObjectId;
11
+ maxConcurrentChats?: number;
12
+ groupId?: mongoose.Types.ObjectId;
13
+ currentStatus?: "online" | "offline" | "away";
14
+ activeChats?: number;
11
15
  ipAddress?: string;
12
- currentStatus: string;
13
16
  lastLogin?: Date;
14
17
  lockedOut?: boolean;
15
- userId?: string;
16
- compare: (inputPassword: string) => Promise<boolean>;
18
+ userId: string;
19
+ createdAt?: Date;
20
+ updatedAt?: Date;
21
+ comparePassword(inputPassword: string): Promise<boolean>;
17
22
  }
18
23
  //# sourceMappingURL=user.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/user.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,KAAM,SAAQ,QAAQ;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,aAAa,GAAG,OAAO,GAAG,YAAY,CAAC;IAC1E,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD"}
1
+ {"version":3,"file":"user.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/user.interface.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,KAAM,SAAQ,QAAQ,CAAC,QAAQ;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EACA,MAAM,GACN,iBAAiB,GACjB,aAAa,GACb,OAAO,GACP,YAAY,GACZ,iBAAiB,GACjB,SAAS,CAAC;IACd,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAC/C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IAClC,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D"}
@@ -0,0 +1,31 @@
1
+ export interface IVisitor {
2
+ _id?: string;
3
+ fingerprintId: string;
4
+ companyId: string;
5
+ ip?: string;
6
+ country?: string;
7
+ state?: string;
8
+ city?: string;
9
+ browser?: string;
10
+ os?: string;
11
+ device?: "mobile" | "tablet" | "desktop" | "unknown";
12
+ isp?: string;
13
+ isVpn?: boolean;
14
+ isIdentified?: boolean;
15
+ email?: string;
16
+ phone?: string;
17
+ name?: string;
18
+ ga4?: {
19
+ medium?: string;
20
+ source?: string;
21
+ keywords?: string;
22
+ };
23
+ referralUrl?: string;
24
+ isBlocked?: boolean;
25
+ blockedAt?: Date;
26
+ blockedBy?: string;
27
+ lastSeenAt?: Date;
28
+ createdAt?: Date;
29
+ updatedAt?: Date;
30
+ }
31
+ //# sourceMappingURL=visitor.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitor.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/visitor.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE;QACF,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +1,7 @@
1
1
  import mongoose from "mongoose";
2
2
  import { IChat } from "../interfaces/chat.interface";
3
3
  export declare const Chat: mongoose.Model<IChat, {}, {}, {}, mongoose.Document<unknown, {}, IChat, {}, {}> & IChat & Required<{
4
- _id: mongoose.Types.ObjectId;
4
+ _id: string;
5
5
  }> & {
6
6
  __v: number;
7
7
  }, any>;
@@ -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;AAkDrD,eAAO,MAAM,IAAI;;;;OAA4C,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;AAuNrD,eAAO,MAAM,IAAI;;;;OAA4C,CAAC"}
@@ -41,42 +41,185 @@ const mongoose_1 = __importStar(require("mongoose"));
41
41
  const mongoose_sequence_1 = __importDefault(require("mongoose-sequence"));
42
42
  const AutoIncrement = (0, mongoose_sequence_1.default)(mongoose_1.default);
43
43
  const chatSchema = new mongoose_1.Schema({
44
+ // ─────────────────────────────────────────────
45
+ // BASIC
46
+ // ─────────────────────────────────────────────
44
47
  chatNumber: { type: Number, unique: true },
45
- userId: { type: mongoose_1.Schema.Types.ObjectId, ref: "User", required: true },
46
- company: {
48
+ companyId: {
47
49
  type: mongoose_1.Schema.Types.ObjectId,
48
50
  ref: "Company",
49
- required: [true, "Company is required"],
51
+ required: true,
52
+ index: true,
50
53
  },
51
- domain: { type: String, required: [true, "Domain is required"] },
54
+ visitorId: {
55
+ type: mongoose_1.Schema.Types.ObjectId,
56
+ ref: "Visitor",
57
+ required: true,
58
+ index: true,
59
+ },
60
+ groupId: {
61
+ type: mongoose_1.Schema.Types.ObjectId,
62
+ ref: "Group",
63
+ required: true,
64
+ index: true,
65
+ },
66
+ domain: { type: String },
67
+ // ─────────────────────────────────────────────
68
+ // OWNERSHIP (CORE)
69
+ // ─────────────────────────────────────────────
70
+ currentOwnerId: {
71
+ type: mongoose_1.Schema.Types.ObjectId,
72
+ ref: "User",
73
+ required: true,
74
+ index: true,
75
+ },
76
+ ownershipType: {
77
+ type: String,
78
+ enum: ["ORBITXPRO", "CLIENT", "SHARED"],
79
+ default: "ORBITXPRO",
80
+ },
81
+ // ─────────────────────────────────────────────
82
+ // PARTICIPANTS (MULTI-AGENT SUPPORT)
83
+ // ─────────────────────────────────────────────
84
+ participants: [
85
+ {
86
+ userId: {
87
+ type: mongoose_1.Schema.Types.ObjectId,
88
+ ref: "User",
89
+ required: true,
90
+ },
91
+ role: {
92
+ type: String,
93
+ enum: ["owner", "viewer"],
94
+ default: "viewer",
95
+ },
96
+ ownerType: {
97
+ type: String,
98
+ enum: ["ORBITXPRO", "CLIENT"],
99
+ },
100
+ joinedAt: { type: Date, default: Date.now },
101
+ leftAt: { type: Date },
102
+ },
103
+ ],
104
+ // ─────────────────────────────────────────────
105
+ // JOIN REQUESTS (BOTH DIRECTIONS)
106
+ // ─────────────────────────────────────────────
107
+ joinRequests: [
108
+ {
109
+ requesterId: {
110
+ type: mongoose_1.Schema.Types.ObjectId,
111
+ ref: "User",
112
+ required: true,
113
+ },
114
+ targetId: {
115
+ type: mongoose_1.Schema.Types.ObjectId,
116
+ ref: "User",
117
+ },
118
+ status: {
119
+ type: String,
120
+ enum: ["pending", "approved", "rejected", "expired"],
121
+ default: "pending",
122
+ },
123
+ createdAt: { type: Date, default: Date.now },
124
+ resolvedAt: { type: Date },
125
+ },
126
+ ],
127
+ // ─────────────────────────────────────────────
128
+ // TRANSFER HISTORY (OWNERSHIP ONLY)
129
+ // ─────────────────────────────────────────────
130
+ transferHistory: [
131
+ {
132
+ fromUserId: { type: mongoose_1.Schema.Types.ObjectId, ref: "User" },
133
+ toUserId: { type: mongoose_1.Schema.Types.ObjectId, ref: "User" },
134
+ type: {
135
+ type: String,
136
+ enum: ["AGENT_TO_AGENT", "OXP_TO_CLIENT", "CLIENT_TAKEOVER"],
137
+ },
138
+ at: { type: Date, default: Date.now },
139
+ },
140
+ ],
141
+ // ─────────────────────────────────────────────
142
+ // STATUS
143
+ // ─────────────────────────────────────────────
52
144
  status: {
53
145
  type: String,
54
- enum: ["open", "closed", "active", "inactive", "shelved"],
55
- default: "active",
146
+ enum: ["waiting", "active", "shelved", "ended"],
147
+ default: "waiting",
148
+ index: true,
56
149
  },
57
150
  leadStatus: {
58
151
  type: String,
59
152
  enum: ["none", "sent", "unsent"],
60
153
  default: "none",
61
154
  },
62
- messages: [{ type: mongoose_1.Schema.Types.ObjectId, ref: "Message" }],
63
- isDeleted: { type: Boolean, default: false },
64
- leads: [{ type: mongoose_1.Schema.Types.ObjectId, ref: "Lead" }],
155
+ // ─────────────────────────────────────────────
156
+ // ROUTING META
157
+ // ─────────────────────────────────────────────
158
+ routingScenario: {
159
+ type: String,
160
+ enum: [
161
+ "OXP_24_7",
162
+ "OXP_BUSINESS_HOURS",
163
+ "CLIENT_HOURS_OXP_AFTER",
164
+ "CLIENT_AND_OXP_HOURS",
165
+ ],
166
+ required: true,
167
+ },
168
+ initiatedVia: {
169
+ type: String,
170
+ enum: ["CTA_FLOAT", "CTA_WIDGET", "DIRECT_MESSAGE", "EXIT_POPUP"],
171
+ required: true,
172
+ },
173
+ // ─────────────────────────────────────────────
174
+ // VISITOR SNAPSHOT
175
+ // ─────────────────────────────────────────────
65
176
  ipAddress: String,
66
- note: String,
67
- // 🚨 NEW FIELDS FOR DASHBOARD DETAILS 🚨
68
- referrerUrl: { type: String, default: "" },
69
- pickedUpBy: { type: String, default: "" },
70
- pickedUpAt: { type: Date, default: null },
71
- endedAt: { type: Date, default: null },
72
- appointmentSet: { type: String, default: "No" },
73
- location: { type: String, default: "" },
74
- source: { type: String, default: "" },
75
- medium: { type: String, default: "" },
177
+ location: String,
178
+ ga4Snapshot: {
179
+ source: String,
180
+ medium: String,
181
+ keywords: String,
182
+ },
183
+ referralUrl: { type: String, default: "" },
184
+ // ─────────────────────────────────────────────
185
+ // CHAT META
186
+ // ─────────────────────────────────────────────
187
+ lastMessageAt: Date,
188
+ lastMessageType: String,
189
+ agentLastReplied: Date,
190
+ // ─────────────────────────────────────────────
191
+ // BUSINESS EVENTS
192
+ // ─────────────────────────────────────────────
193
+ pickedUpAt: Date,
194
+ endedAt: Date,
195
+ endedBy: { type: mongoose_1.Schema.Types.ObjectId, ref: "User" },
196
+ appointmentSet: { type: Boolean, default: false },
197
+ // ─────────────────────────────────────────────
198
+ // RELATIONS (LEAN)
199
+ // ─────────────────────────────────────────────
200
+ leadId: { type: mongoose_1.Schema.Types.ObjectId, ref: "Lead" },
201
+ // ─────────────────────────────────────────────
202
+ // SESSION TRACKING
203
+ // ─────────────────────────────────────────────
204
+ sessionIndex: { type: Number, default: 1 },
205
+ // ─────────────────────────────────────────────
206
+ // SOFT DELETE
207
+ // ─────────────────────────────────────────────
208
+ isDeleted: { type: Boolean, default: false },
76
209
  }, { timestamps: true });
210
+ // ─────────────────────────────────────────────
211
+ // AUTO INCREMENT
212
+ // ─────────────────────────────────────────────
77
213
  chatSchema.plugin(AutoIncrement, {
78
214
  inc_field: "chatNumber",
79
215
  start_seq: 1000,
80
216
  });
81
- chatSchema.index({ userId: 1, company: 1, domain: 1 });
217
+ // ─────────────────────────────────────────────
218
+ // INDEXES (CRITICAL)
219
+ // ─────────────────────────────────────────────
220
+ chatSchema.index({ companyId: 1, status: 1 });
221
+ chatSchema.index({ visitorId: 1, companyId: 1, status: 1 });
222
+ chatSchema.index({ currentOwnerId: 1, status: 1 });
223
+ chatSchema.index({ groupId: 1, status: 1 });
224
+ chatSchema.index({ "participants.userId": 1 });
82
225
  exports.Chat = mongoose_1.default.model("Chat", chatSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"company.model.d.ts","sourceRoot":"","sources":["../../src/models/company.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAU,KAAK,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAoB,MAAM,iCAAiC,CAAC;AAgN7E,eAAO,MAAM,OAAO;;;;OAAqD,CAAC;AAC1E,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"company.model.d.ts","sourceRoot":"","sources":["../../src/models/company.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAU,KAAK,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAoB,MAAM,iCAAiC,CAAC;AAsN7E,eAAO,MAAM,OAAO;;;;OAAqD,CAAC;AAC1E,eAAe,OAAO,CAAC"}
@@ -203,6 +203,12 @@ const companySchema = new mongoose_1.Schema({
203
203
  type: mongoose_1.Schema.Types.ObjectId,
204
204
  ref: "Subscription",
205
205
  },
206
+ avatars: [
207
+ {
208
+ name: { type: String, trim: true },
209
+ url: { type: String, trim: true },
210
+ },
211
+ ],
206
212
  }, {
207
213
  timestamps: true,
208
214
  toJSON: { virtuals: true },
@@ -0,0 +1,8 @@
1
+ import mongoose from "mongoose";
2
+ import { IGroup } from "../interfaces/group.interface";
3
+ export declare const Group: mongoose.Model<IGroup, {}, {}, {}, mongoose.Document<unknown, {}, IGroup, {}, {}> & IGroup & Required<{
4
+ _id: mongoose.Types.ObjectId;
5
+ }> & {
6
+ __v: number;
7
+ }, any>;
8
+ //# sourceMappingURL=group.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.model.d.ts","sourceRoot":"","sources":["../../src/models/group.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAkEvD,eAAO,MAAM,KAAK;;;;OAA+C,CAAC"}