orbitx-core-models 11.136.0 → 11.137.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/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/interfaces/group.interface.d.ts +7 -0
- package/dist/interfaces/group.interface.d.ts.map +1 -1
- package/dist/interfaces/request.interface.d.ts +33 -1
- package/dist/interfaces/request.interface.d.ts.map +1 -1
- package/dist/interfaces/request.interface.js +2 -0
- package/dist/interfaces/ticket.interface.d.ts +29 -1
- package/dist/interfaces/ticket.interface.d.ts.map +1 -1
- package/dist/interfaces/ticket.interface.js +9 -1
- package/dist/interfaces/user.interface.d.ts +8 -0
- package/dist/interfaces/user.interface.d.ts.map +1 -1
- package/dist/models/group.model.d.ts.map +1 -1
- package/dist/models/group.model.js +7 -0
- package/dist/models/request.model.d.ts.map +1 -1
- package/dist/models/request.model.js +35 -1
- package/dist/models/ticket.model.d.ts.map +1 -1
- package/dist/models/ticket.model.js +38 -1
- package/dist/models/user.model.d.ts.map +1 -1
- package/dist/models/user.model.js +17 -0
- package/dist/permissions/seeds/roles.seed.d.ts.map +1 -1
- package/dist/permissions/seeds/roles.seed.js +40 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -68,8 +68,8 @@ import { ISession } from "./interfaces/session.interface";
|
|
|
68
68
|
import { ILoginOtp } from "./interfaces/loginOtp.interface";
|
|
69
69
|
import { IEmployee } from "./interfaces/employee.interface";
|
|
70
70
|
import { ICallSession, CallSessionStatus, CallSessionDirection } from "./interfaces/callSession.interface";
|
|
71
|
-
import { IRequest, IRequestAttachment, RequestCategory, RequestStatus, REQUEST_CATEGORIES, REQUEST_SUBCATEGORIES_BY_CATEGORY } from "./interfaces/request.interface";
|
|
72
|
-
import { ITicket, ITicketAttachment, TicketCategory, ClientTicketCategory, PartnerTicketCategory, TicketOwnerType, TicketSource, TicketStatus, CLIENT_TICKET_CATEGORIES, PARTNER_TICKET_CATEGORIES } from "./interfaces/ticket.interface";
|
|
71
|
+
import { IRequest, IRequestAttachment, IRequestMessage, IRequestActivityEntry, RequestCategory, RequestStatus, REQUEST_CATEGORIES, REQUEST_SUBCATEGORIES_BY_CATEGORY } from "./interfaces/request.interface";
|
|
72
|
+
import { ITicket, ITicketAttachment, ITicketActivityEntry, TicketCategory, ClientTicketCategory, PartnerTicketCategory, TicketOwnerType, TicketSource, TicketStatus, TicketPriority, TICKET_STATUS_CLIENT_VIEW, CLIENT_TICKET_CATEGORIES, PARTNER_TICKET_CATEGORIES } from "./interfaces/ticket.interface";
|
|
73
73
|
import { IRole } from "./interfaces/role.interface";
|
|
74
74
|
import { IAiSummarySettings, IAiSummaryExample, IAiSummaryUsage, AiSummaryLength } from "./interfaces/aiSummary.interface";
|
|
75
75
|
import { Dashboard, PermissionNode, DASHBOARDS } from "./permissions/types";
|
|
@@ -80,6 +80,6 @@ import { clientTree } from "./permissions/trees/client.tree";
|
|
|
80
80
|
import { getTree, getAllKeys, getParentKey, getAncestorKeys } from "./permissions/treeUtils";
|
|
81
81
|
import { resolveEffectivePermissions, hasPermission, validateGrantedKeys, validateExtraKeys, getFullAccessKeys, PermissionSource, ValidationResult } from "./permissions/resolve";
|
|
82
82
|
import { roleSeeds, RoleSeed } from "./permissions/seeds/roles.seed";
|
|
83
|
-
export { Chat, Message, User, Vertical, Macro, Partner, Company, CompanySettings, Review, Wallet, StripeLog, Transaction, Lead, TierConfig, TierProgress, MonthlyTierSnapshot, Product, Plan, PlanOption, Addon, Subscription, Coupon, Visitor, Group, Agent, LeadLedger, Invoice, LeadDispute, Session, LoginOtp, Counter, Employee, CallSession, Request, REQUEST_CATEGORIES, REQUEST_SUBCATEGORIES_BY_CATEGORY, Ticket, CLIENT_TICKET_CATEGORIES, PARTNER_TICKET_CATEGORIES, Role, AiSummarySettings, AiSummaryUsage, opsTree, employeeTree, partnerTree, clientTree, DASHBOARDS, getTree, getAllKeys, getParentKey, getAncestorKeys, resolveEffectivePermissions, hasPermission, validateGrantedKeys, validateExtraKeys, getFullAccessKeys, roleSeeds, };
|
|
84
|
-
export type { IChat, IMessage, IUser, IVertical, IMacro, IPartner, ICompany, IOnboardingStep, ITwilioConfig, ICompanySettings, ICallConnectSettings, ILeadConfig, ILeadFields, IReview, IReviewStatusHistoryEntry, IWallet, IStripeLog, ITransaction, ILead, ITierConfig, ITierProgress, IMonthlyTierSnapshot, IProduct, IPlan, IPlanOption, IAddon, ISubscription, ICoupon, CouponDiscountType, IVisitor, IGroup, IAgent, ILeadLedger, IInvoice, ILeadDispute, ISession, ILoginOtp, IEmployee, ICallSession, CallSessionStatus, CallSessionDirection, IRequest, IRequestAttachment, RequestCategory, RequestStatus, ITicket, ITicketAttachment, TicketCategory, ClientTicketCategory, PartnerTicketCategory, TicketOwnerType, TicketSource, TicketStatus, IRole, IAiSummarySettings, IAiSummaryExample, IAiSummaryUsage, AiSummaryLength, Dashboard, PermissionNode, PermissionSource, ValidationResult, RoleSeed, };
|
|
83
|
+
export { Chat, Message, User, Vertical, Macro, Partner, Company, CompanySettings, Review, Wallet, StripeLog, Transaction, Lead, TierConfig, TierProgress, MonthlyTierSnapshot, Product, Plan, PlanOption, Addon, Subscription, Coupon, Visitor, Group, Agent, LeadLedger, Invoice, LeadDispute, Session, LoginOtp, Counter, Employee, CallSession, Request, REQUEST_CATEGORIES, REQUEST_SUBCATEGORIES_BY_CATEGORY, Ticket, CLIENT_TICKET_CATEGORIES, PARTNER_TICKET_CATEGORIES, TICKET_STATUS_CLIENT_VIEW, Role, AiSummarySettings, AiSummaryUsage, opsTree, employeeTree, partnerTree, clientTree, DASHBOARDS, getTree, getAllKeys, getParentKey, getAncestorKeys, resolveEffectivePermissions, hasPermission, validateGrantedKeys, validateExtraKeys, getFullAccessKeys, roleSeeds, };
|
|
84
|
+
export type { IChat, IMessage, IUser, IVertical, IMacro, IPartner, ICompany, IOnboardingStep, ITwilioConfig, ICompanySettings, ICallConnectSettings, ILeadConfig, ILeadFields, IReview, IReviewStatusHistoryEntry, IWallet, IStripeLog, ITransaction, ILead, ITierConfig, ITierProgress, IMonthlyTierSnapshot, IProduct, IPlan, IPlanOption, IAddon, ISubscription, ICoupon, CouponDiscountType, IVisitor, IGroup, IAgent, ILeadLedger, IInvoice, ILeadDispute, ISession, ILoginOtp, IEmployee, ICallSession, CallSessionStatus, CallSessionDirection, IRequest, IRequestAttachment, IRequestMessage, IRequestActivityEntry, RequestCategory, RequestStatus, ITicket, ITicketAttachment, ITicketActivityEntry, TicketCategory, ClientTicketCategory, PartnerTicketCategory, TicketOwnerType, TicketSource, TicketStatus, TicketPriority, IRole, IAiSummarySettings, IAiSummaryExample, IAiSummaryUsage, AiSummaryLength, Dashboard, PermissionNode, PermissionSource, ValidationResult, RoleSeed, };
|
|
85
85
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.roleSeeds = exports.getFullAccessKeys = exports.validateExtraKeys = exports.validateGrantedKeys = exports.hasPermission = exports.resolveEffectivePermissions = exports.getAncestorKeys = void 0;
|
|
3
|
+
exports.getAllKeys = exports.getTree = exports.DASHBOARDS = exports.clientTree = exports.partnerTree = exports.employeeTree = exports.opsTree = exports.AiSummaryUsage = exports.AiSummarySettings = exports.Role = exports.TICKET_STATUS_CLIENT_VIEW = exports.PARTNER_TICKET_CATEGORIES = exports.CLIENT_TICKET_CATEGORIES = exports.Ticket = exports.REQUEST_SUBCATEGORIES_BY_CATEGORY = exports.REQUEST_CATEGORIES = exports.Request = exports.CallSession = exports.Employee = exports.Counter = exports.LoginOtp = exports.Session = exports.LeadDispute = exports.Invoice = exports.LeadLedger = exports.Agent = exports.Group = exports.Visitor = exports.Coupon = 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.CompanySettings = exports.Company = exports.Partner = exports.Macro = exports.Vertical = exports.User = exports.Message = exports.Chat = void 0;
|
|
4
|
+
exports.roleSeeds = exports.getFullAccessKeys = exports.validateExtraKeys = exports.validateGrantedKeys = exports.hasPermission = exports.resolveEffectivePermissions = exports.getAncestorKeys = exports.getParentKey = void 0;
|
|
5
5
|
// MODELS
|
|
6
6
|
const chat_model_1 = require("./models/chat.model");
|
|
7
7
|
Object.defineProperty(exports, "Chat", { enumerable: true, get: function () { return chat_model_1.Chat; } });
|
|
@@ -83,6 +83,7 @@ const request_interface_1 = require("./interfaces/request.interface");
|
|
|
83
83
|
Object.defineProperty(exports, "REQUEST_CATEGORIES", { enumerable: true, get: function () { return request_interface_1.REQUEST_CATEGORIES; } });
|
|
84
84
|
Object.defineProperty(exports, "REQUEST_SUBCATEGORIES_BY_CATEGORY", { enumerable: true, get: function () { return request_interface_1.REQUEST_SUBCATEGORIES_BY_CATEGORY; } });
|
|
85
85
|
const ticket_interface_1 = require("./interfaces/ticket.interface");
|
|
86
|
+
Object.defineProperty(exports, "TICKET_STATUS_CLIENT_VIEW", { enumerable: true, get: function () { return ticket_interface_1.TICKET_STATUS_CLIENT_VIEW; } });
|
|
86
87
|
Object.defineProperty(exports, "CLIENT_TICKET_CATEGORIES", { enumerable: true, get: function () { return ticket_interface_1.CLIENT_TICKET_CATEGORIES; } });
|
|
87
88
|
Object.defineProperty(exports, "PARTNER_TICKET_CATEGORIES", { enumerable: true, get: function () { return ticket_interface_1.PARTNER_TICKET_CATEGORIES; } });
|
|
88
89
|
// PERMISSIONS
|
|
@@ -10,6 +10,13 @@ export interface IGroup {
|
|
|
10
10
|
}>;
|
|
11
11
|
isActive: boolean;
|
|
12
12
|
priority: number;
|
|
13
|
+
/**
|
|
14
|
+
* When set, this group doubles as a ticket-routing team for these categories -- e.g. a "Law"
|
|
15
|
+
* group whose agents already get that group's companies' chats also becomes the Billing team by
|
|
16
|
+
* listing "dispute-billable-lead"/"invoice-dispute" here. Same `agents` list either way; no
|
|
17
|
+
* separate team concept. Left empty/unset, a group is chat-routing only, as today.
|
|
18
|
+
*/
|
|
19
|
+
handlesTicketCategories?: string[];
|
|
13
20
|
createdAt?: Date;
|
|
14
21
|
updatedAt?: Date;
|
|
15
22
|
}
|
|
@@ -1 +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,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"}
|
|
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,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;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
|
|
@@ -17,10 +17,18 @@ export declare const REQUEST_SUBCATEGORIES_BY_CATEGORY: {
|
|
|
17
17
|
readonly "Feature/Add-ons update": readonly ["Add", "Remove", "Intake Questions", "User Seats", "Email Lead Notification", "Basic Call Connect", "Custom Branding", "Custom Greeting", "Multilingual Chat", "HIPAA Compliant Leads", "Secure Leads", "Google Analytics", "Advanced Call Connect", "Custom Reporting", "Custom Email Routing", "Appointment Scheduling", "Retainer Signing", "Custom CRM Integration", "Advanced Script Customization", "Team Notifications"];
|
|
18
18
|
readonly "Plan Upgrade": readonly ["Subscription Plan", "Starter / Pro / Advance"];
|
|
19
19
|
readonly "Custom Plan": readonly ["Desired add-on list"];
|
|
20
|
+
/** A request with a reason, routed to a review checklist rather than a simple field change. */
|
|
21
|
+
readonly "Account Deactivation": readonly ["Reason"];
|
|
20
22
|
};
|
|
21
23
|
export declare const REQUEST_CATEGORIES: RequestCategory[];
|
|
22
24
|
export type RequestCategory = keyof typeof REQUEST_SUBCATEGORIES_BY_CATEGORY;
|
|
23
|
-
|
|
25
|
+
/**
|
|
26
|
+
* "needs_input" covers both a setup-after-purchase request waiting on the client's answers and a
|
|
27
|
+
* quote waiting on their approval -- both are, from Ops' side, "waiting on the requester", which
|
|
28
|
+
* is what the status is for. Keeps "resolved" (not renamed to "completed") so existing Request
|
|
29
|
+
* documents already carrying that value don't need a data migration.
|
|
30
|
+
*/
|
|
31
|
+
export type RequestStatus = "pending" | "in_progress" | "needs_input" | "resolved" | "rejected";
|
|
24
32
|
export interface IRequestAttachment {
|
|
25
33
|
url: string;
|
|
26
34
|
s3Key: string;
|
|
@@ -28,6 +36,25 @@ export interface IRequestAttachment {
|
|
|
28
36
|
mimeType: string;
|
|
29
37
|
size: number;
|
|
30
38
|
}
|
|
39
|
+
/** Same idea as ITicketMessage -- a client-visible reply and an internal-only note share one thread. */
|
|
40
|
+
export interface IRequestMessage {
|
|
41
|
+
_id?: Types.ObjectId;
|
|
42
|
+
authorType: "ops" | "client";
|
|
43
|
+
authorId?: Types.ObjectId;
|
|
44
|
+
authorName?: string;
|
|
45
|
+
body: string;
|
|
46
|
+
isInternal: boolean;
|
|
47
|
+
createdAt: Date;
|
|
48
|
+
}
|
|
49
|
+
export interface IRequestActivityEntry {
|
|
50
|
+
_id?: Types.ObjectId;
|
|
51
|
+
action: "created" | "status_changed" | "assigned" | "reassigned" | "message_added" | "field_applied";
|
|
52
|
+
actorId?: Types.ObjectId;
|
|
53
|
+
actorName?: string;
|
|
54
|
+
from?: string;
|
|
55
|
+
to?: string;
|
|
56
|
+
createdAt: Date;
|
|
57
|
+
}
|
|
31
58
|
export interface IRequest extends Document {
|
|
32
59
|
requestId: string;
|
|
33
60
|
companyId: Types.ObjectId;
|
|
@@ -37,7 +64,12 @@ export interface IRequest extends Document {
|
|
|
37
64
|
attachment?: IRequestAttachment;
|
|
38
65
|
requestedBy: Types.ObjectId;
|
|
39
66
|
status: RequestStatus;
|
|
67
|
+
/** The Ops User (their Account Manager, by default -- see Phase 29's routing decision)
|
|
68
|
+
* currently responsible for this request. Unset means it's unassigned. */
|
|
69
|
+
assigneeId?: Types.ObjectId;
|
|
40
70
|
remarks?: string;
|
|
71
|
+
messages?: IRequestMessage[];
|
|
72
|
+
activityLog?: IRequestActivityEntry[];
|
|
41
73
|
resolvedBy?: Types.ObjectId;
|
|
42
74
|
resolvedAt?: Date;
|
|
43
75
|
createdAt?: Date;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/request.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"request.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/request.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;IAoE5C,+FAA+F;;CAEvF,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAE1B,eAAe,EAAE,CAAC;AAEvB,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,iCAAiC,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC;AAEhG,MAAM,WAAW,kBAAkB;IACjC,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,wGAAwG;AACxG,MAAM,WAAW,eAAe;IAC9B,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,qBAAqB;IACpC,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IACrB,MAAM,EACF,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,YAAY,GACZ,eAAe,GACf,eAAe,CAAC;IACpB,OAAO,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB;8EAC0E;IAC1E,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACtC,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"}
|
|
@@ -76,5 +76,7 @@ exports.REQUEST_SUBCATEGORIES_BY_CATEGORY = {
|
|
|
76
76
|
],
|
|
77
77
|
"Plan Upgrade": ["Subscription Plan", "Starter / Pro / Advance"],
|
|
78
78
|
"Custom Plan": ["Desired add-on list"],
|
|
79
|
+
/** A request with a reason, routed to a review checklist rather than a simple field change. */
|
|
80
|
+
"Account Deactivation": ["Reason"],
|
|
79
81
|
};
|
|
80
82
|
exports.REQUEST_CATEGORIES = Object.keys(exports.REQUEST_SUBCATEGORIES_BY_CATEGORY);
|
|
@@ -29,7 +29,15 @@ export type TicketOwnerType = "Company" | "Partner";
|
|
|
29
29
|
* contact email.
|
|
30
30
|
*/
|
|
31
31
|
export type TicketSource = "dashboard" | "email";
|
|
32
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Ops sees five stages so a stalled ticket shows *why* it's stalled; a client or partner only
|
|
34
|
+
* ever sees three (see TICKET_STATUS_CLIENT_VIEW below for the collapse). "awaiting_client"/
|
|
35
|
+
* "awaiting_internal" are still "in_progress" as far as a requester is concerned.
|
|
36
|
+
*/
|
|
37
|
+
export type TicketStatus = "open" | "in_progress" | "awaiting_client" | "awaiting_internal" | "resolved";
|
|
38
|
+
/** How a TicketStatus should read to the ticket's own requester (Client/Partner Dashboard). */
|
|
39
|
+
export declare const TICKET_STATUS_CLIENT_VIEW: Record<TicketStatus, "open" | "in_progress" | "resolved">;
|
|
40
|
+
export type TicketPriority = "urgent" | "high" | "normal" | "low";
|
|
33
41
|
export interface ITicketAttachment {
|
|
34
42
|
url: string;
|
|
35
43
|
s3Key: string;
|
|
@@ -37,6 +45,21 @@ export interface ITicketAttachment {
|
|
|
37
45
|
mimeType: string;
|
|
38
46
|
size: number;
|
|
39
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* One row in a ticket's audit trail (Support Analytics/Manager Workspace "Activity log"). Written
|
|
50
|
+
* by whichever backend action causes it -- ops-dashboard's updateTicket/addTicketMessage today,
|
|
51
|
+
* the routing engine once it exists.
|
|
52
|
+
*/
|
|
53
|
+
export interface ITicketActivityEntry {
|
|
54
|
+
_id?: Types.ObjectId;
|
|
55
|
+
action: "created" | "status_changed" | "category_changed" | "priority_changed" | "assigned" | "reassigned" | "message_added" | "mentioned";
|
|
56
|
+
actorId?: Types.ObjectId;
|
|
57
|
+
actorName?: string;
|
|
58
|
+
/** Human-readable before/after for status/category/priority/assignee changes. */
|
|
59
|
+
from?: string;
|
|
60
|
+
to?: string;
|
|
61
|
+
createdAt: Date;
|
|
62
|
+
}
|
|
40
63
|
/**
|
|
41
64
|
* A single entry in a ticket's message thread. Client-visible and
|
|
42
65
|
* internal-only notes live in the same array, distinguished by
|
|
@@ -71,9 +94,14 @@ export interface ITicket extends Document {
|
|
|
71
94
|
/** Sender's email for an email-created ticket, or the requester's known email for reference. */
|
|
72
95
|
requesterEmail?: string;
|
|
73
96
|
status: TicketStatus;
|
|
97
|
+
priority: TicketPriority;
|
|
98
|
+
/** The Ops User (Support Agent/Manager, or any Ops role with tickets.updateTicket) currently
|
|
99
|
+
* responsible for this ticket. Unset means it's sitting in an unassigned pool. */
|
|
100
|
+
assigneeId?: Types.ObjectId;
|
|
74
101
|
/** Legacy single-field reply, superseded by `messages` -- kept read-only for continuity on older tickets. */
|
|
75
102
|
remarks?: string;
|
|
76
103
|
messages?: ITicketMessage[];
|
|
104
|
+
activityLog?: ITicketActivityEntry[];
|
|
77
105
|
resolvedBy?: Types.ObjectId;
|
|
78
106
|
resolvedAt?: Date;
|
|
79
107
|
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,
|
|
1
|
+
{"version":3,"file":"ticket.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/ticket.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PARTNER_TICKET_CATEGORIES = exports.CLIENT_TICKET_CATEGORIES = void 0;
|
|
3
|
+
exports.TICKET_STATUS_CLIENT_VIEW = exports.PARTNER_TICKET_CATEGORIES = exports.CLIENT_TICKET_CATEGORIES = void 0;
|
|
4
4
|
exports.CLIENT_TICKET_CATEGORIES = [
|
|
5
5
|
"dispute-billable-lead",
|
|
6
6
|
"chat-dispute",
|
|
@@ -13,3 +13,11 @@ exports.PARTNER_TICKET_CATEGORIES = [
|
|
|
13
13
|
"review-submission-issue",
|
|
14
14
|
"other",
|
|
15
15
|
];
|
|
16
|
+
/** How a TicketStatus should read to the ticket's own requester (Client/Partner Dashboard). */
|
|
17
|
+
exports.TICKET_STATUS_CLIENT_VIEW = {
|
|
18
|
+
open: "open",
|
|
19
|
+
in_progress: "in_progress",
|
|
20
|
+
awaiting_client: "in_progress",
|
|
21
|
+
awaiting_internal: "in_progress",
|
|
22
|
+
resolved: "resolved",
|
|
23
|
+
};
|
|
@@ -13,6 +13,14 @@ export interface IUser extends mongoose.Document {
|
|
|
13
13
|
owner: mongoose.Types.ObjectId;
|
|
14
14
|
maxConcurrentChats?: number;
|
|
15
15
|
groupId?: mongoose.Types.ObjectId;
|
|
16
|
+
/** Support Agent/Manager: which groups' companies (and, if a group also handles ticket
|
|
17
|
+
* categories, which ticket teams) this person belongs to. Same idea as Agent.groupIds for
|
|
18
|
+
* chat routing, just on the Ops side. */
|
|
19
|
+
groupIds?: mongoose.Types.ObjectId[];
|
|
20
|
+
/** Support Agent/Manager: cap on open tickets, used by the routing engine's fewest-open pick. */
|
|
21
|
+
maxOpenTickets?: number;
|
|
22
|
+
/** Support Agent/Manager: their manager, for the Support Manager's team roll-up. */
|
|
23
|
+
reportsTo?: mongoose.Types.ObjectId;
|
|
16
24
|
currentStatus?: string;
|
|
17
25
|
activeChats?: number;
|
|
18
26
|
ipAddress?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/user.interface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"user.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/user.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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;AAmEvD,eAAO,MAAM,KAAK;;;;OAA+C,CAAC"}
|
|
@@ -75,6 +75,13 @@ const groupSchema = new mongoose_1.Schema({
|
|
|
75
75
|
type: Number,
|
|
76
76
|
default: 0,
|
|
77
77
|
},
|
|
78
|
+
// ─────────────────────────────────────────────
|
|
79
|
+
// TICKET ROUTING (optional -- see interface comment)
|
|
80
|
+
// ─────────────────────────────────────────────
|
|
81
|
+
handlesTicketCategories: {
|
|
82
|
+
type: [String],
|
|
83
|
+
default: [],
|
|
84
|
+
},
|
|
78
85
|
}, { timestamps: true });
|
|
79
86
|
// ─────────────────────────────────────────────
|
|
80
87
|
// INDEXES
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.model.d.ts","sourceRoot":"","sources":["../../src/models/request.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAE5C,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"request.model.d.ts","sourceRoot":"","sources":["../../src/models/request.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAE5C,OAAO,EACL,QAAQ,EAMT,MAAM,iCAAiC,CAAC;AAmJzC,eAAO,MAAM,OAAO;;;;OAAqD,CAAC;AAC1E,eAAe,OAAO,CAAC"}
|
|
@@ -44,6 +44,26 @@ const requestAttachmentSchema = new mongoose_1.Schema({
|
|
|
44
44
|
mimeType: { type: String, required: true, trim: true },
|
|
45
45
|
size: { type: Number, required: true, min: 0 },
|
|
46
46
|
}, { _id: false });
|
|
47
|
+
const requestMessageSchema = new mongoose_1.Schema({
|
|
48
|
+
authorType: { type: String, enum: ["ops", "client"], required: true },
|
|
49
|
+
authorId: { type: mongoose_1.Schema.Types.ObjectId },
|
|
50
|
+
authorName: { type: String, trim: true },
|
|
51
|
+
body: { type: String, required: true, trim: true, maxlength: 5000 },
|
|
52
|
+
isInternal: { type: Boolean, default: false },
|
|
53
|
+
createdAt: { type: Date, default: Date.now },
|
|
54
|
+
}, { _id: true });
|
|
55
|
+
const requestActivityEntrySchema = new mongoose_1.Schema({
|
|
56
|
+
action: {
|
|
57
|
+
type: String,
|
|
58
|
+
enum: ["created", "status_changed", "assigned", "reassigned", "message_added", "field_applied"],
|
|
59
|
+
required: true,
|
|
60
|
+
},
|
|
61
|
+
actorId: { type: mongoose_1.Schema.Types.ObjectId },
|
|
62
|
+
actorName: { type: String, trim: true },
|
|
63
|
+
from: { type: String, trim: true },
|
|
64
|
+
to: { type: String, trim: true },
|
|
65
|
+
createdAt: { type: Date, default: Date.now },
|
|
66
|
+
}, { _id: true });
|
|
47
67
|
const requestSchema = new mongoose_1.Schema({
|
|
48
68
|
requestId: {
|
|
49
69
|
type: String,
|
|
@@ -84,15 +104,28 @@ const requestSchema = new mongoose_1.Schema({
|
|
|
84
104
|
},
|
|
85
105
|
status: {
|
|
86
106
|
type: String,
|
|
87
|
-
enum: ["pending", "in_progress", "resolved"],
|
|
107
|
+
enum: ["pending", "in_progress", "needs_input", "resolved", "rejected"],
|
|
88
108
|
default: "pending",
|
|
89
109
|
index: true,
|
|
90
110
|
},
|
|
111
|
+
assigneeId: {
|
|
112
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
113
|
+
ref: "User",
|
|
114
|
+
index: true,
|
|
115
|
+
},
|
|
91
116
|
remarks: {
|
|
92
117
|
type: String,
|
|
93
118
|
trim: true,
|
|
94
119
|
maxlength: [5000, "Remarks cannot exceed 5000 characters"],
|
|
95
120
|
},
|
|
121
|
+
messages: {
|
|
122
|
+
type: [requestMessageSchema],
|
|
123
|
+
default: [],
|
|
124
|
+
},
|
|
125
|
+
activityLog: {
|
|
126
|
+
type: [requestActivityEntrySchema],
|
|
127
|
+
default: [],
|
|
128
|
+
},
|
|
96
129
|
resolvedBy: {
|
|
97
130
|
type: mongoose_1.Schema.Types.ObjectId,
|
|
98
131
|
ref: "User",
|
|
@@ -118,5 +151,6 @@ requestSchema.pre("save", async function () {
|
|
|
118
151
|
requestSchema.index({ companyId: 1, createdAt: -1 });
|
|
119
152
|
requestSchema.index({ companyId: 1, status: 1, createdAt: -1 });
|
|
120
153
|
requestSchema.index({ companyId: 1, category: 1, createdAt: -1 });
|
|
154
|
+
requestSchema.index({ assigneeId: 1, status: 1, createdAt: -1 });
|
|
121
155
|
exports.Request = mongoose_1.default.model("Request", requestSchema);
|
|
122
156
|
exports.default = exports.Request;
|
|
@@ -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,
|
|
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,EACL,OAAO,EAIR,MAAM,gCAAgC,CAAC;AAkNxC,eAAO,MAAM,MAAM;;;;OAAkD,CAAC;AACtE,eAAe,MAAM,CAAC"}
|
|
@@ -51,6 +51,27 @@ const ticketMessageSchema = new mongoose_1.Schema({
|
|
|
51
51
|
isInternal: { type: Boolean, default: false },
|
|
52
52
|
createdAt: { type: Date, default: Date.now },
|
|
53
53
|
}, { _id: true });
|
|
54
|
+
const ticketActivityEntrySchema = new mongoose_1.Schema({
|
|
55
|
+
action: {
|
|
56
|
+
type: String,
|
|
57
|
+
enum: [
|
|
58
|
+
"created",
|
|
59
|
+
"status_changed",
|
|
60
|
+
"category_changed",
|
|
61
|
+
"priority_changed",
|
|
62
|
+
"assigned",
|
|
63
|
+
"reassigned",
|
|
64
|
+
"message_added",
|
|
65
|
+
"mentioned",
|
|
66
|
+
],
|
|
67
|
+
required: true,
|
|
68
|
+
},
|
|
69
|
+
actorId: { type: mongoose_1.Schema.Types.ObjectId },
|
|
70
|
+
actorName: { type: String, trim: true },
|
|
71
|
+
from: { type: String, trim: true },
|
|
72
|
+
to: { type: String, trim: true },
|
|
73
|
+
createdAt: { type: Date, default: Date.now },
|
|
74
|
+
}, { _id: true });
|
|
54
75
|
const ticketSchema = new mongoose_1.Schema({
|
|
55
76
|
ticketId: {
|
|
56
77
|
type: String,
|
|
@@ -113,10 +134,21 @@ const ticketSchema = new mongoose_1.Schema({
|
|
|
113
134
|
},
|
|
114
135
|
status: {
|
|
115
136
|
type: String,
|
|
116
|
-
enum: ["open", "in_progress", "resolved"],
|
|
137
|
+
enum: ["open", "in_progress", "awaiting_client", "awaiting_internal", "resolved"],
|
|
117
138
|
default: "open",
|
|
118
139
|
index: true,
|
|
119
140
|
},
|
|
141
|
+
priority: {
|
|
142
|
+
type: String,
|
|
143
|
+
enum: ["urgent", "high", "normal", "low"],
|
|
144
|
+
default: "normal",
|
|
145
|
+
index: true,
|
|
146
|
+
},
|
|
147
|
+
assigneeId: {
|
|
148
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
149
|
+
ref: "User",
|
|
150
|
+
index: true,
|
|
151
|
+
},
|
|
120
152
|
remarks: {
|
|
121
153
|
type: String,
|
|
122
154
|
trim: true,
|
|
@@ -126,6 +158,10 @@ const ticketSchema = new mongoose_1.Schema({
|
|
|
126
158
|
type: [ticketMessageSchema],
|
|
127
159
|
default: [],
|
|
128
160
|
},
|
|
161
|
+
activityLog: {
|
|
162
|
+
type: [ticketActivityEntrySchema],
|
|
163
|
+
default: [],
|
|
164
|
+
},
|
|
129
165
|
resolvedBy: {
|
|
130
166
|
type: mongoose_1.Schema.Types.ObjectId,
|
|
131
167
|
ref: "User",
|
|
@@ -182,5 +218,6 @@ ticketSchema.pre("save", async function () {
|
|
|
182
218
|
});
|
|
183
219
|
ticketSchema.index({ ownerType: 1, ownerId: 1, createdAt: -1 });
|
|
184
220
|
ticketSchema.index({ ownerType: 1, ownerId: 1, status: 1, createdAt: -1 });
|
|
221
|
+
ticketSchema.index({ assigneeId: 1, status: 1, createdAt: -1 });
|
|
185
222
|
exports.Ticket = mongoose_1.default.model("Ticket", ticketSchema);
|
|
186
223
|
exports.default = exports.Ticket;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AA0RrD,eAAO,MAAM,IAAI;;;;OAA4C,CAAC"}
|
|
@@ -164,6 +164,23 @@ const userSchema = new mongoose_1.Schema({
|
|
|
164
164
|
ref: "Group",
|
|
165
165
|
index: true,
|
|
166
166
|
},
|
|
167
|
+
// ─────────────────────────────────────────────
|
|
168
|
+
// SUPPORT FIELDS (Support Agent / Support Manager) -- same shape as the chat fields above,
|
|
169
|
+
// Groups pull double duty as ticket-routing teams (see Group.handlesTicketCategories).
|
|
170
|
+
// ─────────────────────────────────────────────
|
|
171
|
+
groupIds: {
|
|
172
|
+
type: [mongoose_1.Schema.Types.ObjectId],
|
|
173
|
+
ref: "Group",
|
|
174
|
+
default: undefined,
|
|
175
|
+
},
|
|
176
|
+
maxOpenTickets: {
|
|
177
|
+
type: Number,
|
|
178
|
+
default: 15,
|
|
179
|
+
},
|
|
180
|
+
reportsTo: {
|
|
181
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
182
|
+
ref: "User",
|
|
183
|
+
},
|
|
167
184
|
// persistent fallback only. No enum -- Ops staff have richer statuses
|
|
168
185
|
// than online/offline/away (e.g. "restroom_break", "training_qa",
|
|
169
186
|
// matching Agent.currentStatus's free-text approach) and a strict enum
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.seed.d.ts","sourceRoot":"","sources":["../../../src/permissions/seeds/roles.seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,IAAI,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,SAAS,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"roles.seed.d.ts","sourceRoot":"","sources":["../../../src/permissions/seeds/roles.seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,IAAI,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,SAAS,EAAE,QAAQ,EAgN/B,CAAC"}
|
|
@@ -122,6 +122,46 @@ exports.roleSeeds = [
|
|
|
122
122
|
"reviews.updateReview",
|
|
123
123
|
],
|
|
124
124
|
},
|
|
125
|
+
{
|
|
126
|
+
// DRAFT, deliberately minimal (least privilege) -- Phase 27 of the support desk plan
|
|
127
|
+
// ("Support People & Access") hasn't had its scope model (Mine/My team/My groups/All)
|
|
128
|
+
// built yet, so this role only grants what a Support Agent needs to work a ticket. It does
|
|
129
|
+
// NOT include Requests -- those route to each company's own Account Manager, per the
|
|
130
|
+
// owner's 2026-09-22 call. Needs the same human sign-off as the rest of this file before
|
|
131
|
+
// it governs real access.
|
|
132
|
+
dashboard: "ops",
|
|
133
|
+
key: "support-agent",
|
|
134
|
+
label: "Support Agent",
|
|
135
|
+
isSystemRole: true,
|
|
136
|
+
grantedKeys: [
|
|
137
|
+
"profile",
|
|
138
|
+
"profile.editPersonalInformation",
|
|
139
|
+
"profile.updatePassword",
|
|
140
|
+
"profile.twoFactorAuthentication",
|
|
141
|
+
"profile.viewSessions",
|
|
142
|
+
"status",
|
|
143
|
+
"tickets",
|
|
144
|
+
"tickets.updateTicket",
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
// DRAFT -- same base as Support Agent. A Support Manager's team roll-up (Phase 32) reads
|
|
149
|
+
// Agent.reportsTo, not an extra permission key, so there's nothing more to grant here yet.
|
|
150
|
+
dashboard: "ops",
|
|
151
|
+
key: "support-manager",
|
|
152
|
+
label: "Support Manager",
|
|
153
|
+
isSystemRole: true,
|
|
154
|
+
grantedKeys: [
|
|
155
|
+
"profile",
|
|
156
|
+
"profile.editPersonalInformation",
|
|
157
|
+
"profile.updatePassword",
|
|
158
|
+
"profile.twoFactorAuthentication",
|
|
159
|
+
"profile.viewSessions",
|
|
160
|
+
"status",
|
|
161
|
+
"tickets",
|
|
162
|
+
"tickets.updateTicket",
|
|
163
|
+
],
|
|
164
|
+
},
|
|
125
165
|
// ── Employee Dashboard (created from Ops per the spec's own note) ──────
|
|
126
166
|
{
|
|
127
167
|
dashboard: "employee",
|