clarion-shared-types 1.0.89 → 1.0.91
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/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/modules/partner/enums/partner-enums.js +95 -1
- package/dist/cjs/modules/partner/enums/partner-enums.js.map +1 -1
- package/dist/cjs/modules/partner/index.js +1 -0
- package/dist/cjs/modules/partner/index.js.map +1 -1
- package/dist/cjs/modules/partner/interfaces/partner-membership.dto.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-membership.dto.js.map +1 -0
- package/dist/cjs/modules/partner/utils/partner-display.util.js +151 -1
- package/dist/cjs/modules/partner/utils/partner-display.util.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js +40 -0
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js +1 -0
- package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
- package/dist/cjs/modules/support/enums/support-enums.js +375 -0
- package/dist/cjs/modules/support/enums/support-enums.js.map +1 -0
- package/dist/cjs/modules/support/index.js +27 -0
- package/dist/cjs/modules/support/index.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/customer-feedback.dto.js +3 -0
- package/dist/cjs/modules/support/interfaces/customer-feedback.dto.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-configuration.dto.js +3 -0
- package/dist/cjs/modules/support/interfaces/support-configuration.dto.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-reports.dto.js +3 -0
- package/dist/cjs/modules/support/interfaces/support-reports.dto.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-sync.dto.js +3 -0
- package/dist/cjs/modules/support/interfaces/support-sync.dto.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-ticket.dto.js +3 -0
- package/dist/cjs/modules/support/interfaces/support-ticket.dto.js.map +1 -0
- package/dist/cjs/modules/support/utils/support-display.util.js +364 -0
- package/dist/cjs/modules/support/utils/support-display.util.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/partner/enums/partner-enums.js +94 -0
- package/dist/esm/modules/partner/enums/partner-enums.js.map +1 -1
- package/dist/esm/modules/partner/index.js +1 -0
- package/dist/esm/modules/partner/index.js.map +1 -1
- package/dist/esm/modules/partner/interfaces/partner-membership.dto.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-membership.dto.js.map +1 -0
- package/dist/esm/modules/partner/utils/partner-display.util.js +148 -1
- package/dist/esm/modules/partner/utils/partner-display.util.js.map +1 -1
- package/dist/esm/modules/permission/enums/permission-actions.enum.js +40 -0
- package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/esm/modules/permission/enums/permissions-moudule.enum.js +1 -0
- package/dist/esm/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
- package/dist/esm/modules/support/enums/support-enums.js +372 -0
- package/dist/esm/modules/support/enums/support-enums.js.map +1 -0
- package/dist/esm/modules/support/index.js +11 -0
- package/dist/esm/modules/support/index.js.map +1 -0
- package/dist/esm/modules/support/interfaces/customer-feedback.dto.js +2 -0
- package/dist/esm/modules/support/interfaces/customer-feedback.dto.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-configuration.dto.js +2 -0
- package/dist/esm/modules/support/interfaces/support-configuration.dto.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-reports.dto.js +2 -0
- package/dist/esm/modules/support/interfaces/support-reports.dto.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-sync.dto.js +2 -0
- package/dist/esm/modules/support/interfaces/support-sync.dto.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-ticket.dto.js +2 -0
- package/dist/esm/modules/support/interfaces/support-ticket.dto.js.map +1 -0
- package/dist/esm/modules/support/utils/support-display.util.js +351 -0
- package/dist/esm/modules/support/utils/support-display.util.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/modules/partner/enums/partner-enums.d.ts +86 -0
- package/dist/types/modules/partner/index.d.ts +1 -0
- package/dist/types/modules/partner/interfaces/partner-integration.dto.d.ts +24 -1
- package/dist/types/modules/partner/interfaces/partner-membership.dto.d.ts +176 -0
- package/dist/types/modules/partner/interfaces/partner-provider.dto.d.ts +10 -0
- package/dist/types/modules/partner/utils/partner-display.util.d.ts +51 -1
- package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +29 -1
- package/dist/types/modules/permission/enums/permissions-moudule.enum.d.ts +2 -1
- package/dist/types/modules/support/enums/support-enums.d.ts +341 -0
- package/dist/types/modules/support/index.d.ts +7 -0
- package/dist/types/modules/support/interfaces/customer-feedback.dto.d.ts +151 -0
- package/dist/types/modules/support/interfaces/support-configuration.dto.d.ts +244 -0
- package/dist/types/modules/support/interfaces/support-reports.dto.d.ts +146 -0
- package/dist/types/modules/support/interfaces/support-sync.dto.d.ts +92 -0
- package/dist/types/modules/support/interfaces/support-ticket.dto.d.ts +275 -0
- package/dist/types/modules/support/utils/support-display.util.d.ts +67 -0
- package/package.json +1 -1
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { PartnerMemberDocumentType, PartnerMemberGender, PartnerMemberProfileField, PartnerMemberState, PartnerMembershipStatus, PartnerMembershipSubjectType, PartnerProviderCode } from '../enums/partner-enums';
|
|
2
|
+
/**
|
|
3
|
+
* A person, as a partner membership records them.
|
|
4
|
+
*
|
|
5
|
+
* Deliberately NOT a Clarion user, a billing client or a beneficiary: those are
|
|
6
|
+
* three rows in three services, and a partner cares about none of that
|
|
7
|
+
* distinction. It wants a name, a number and enough identity to tell two people
|
|
8
|
+
* apart.
|
|
9
|
+
*/
|
|
10
|
+
export interface PartnerMemberProfileDto {
|
|
11
|
+
fullName: string;
|
|
12
|
+
/** E.164, e.g. `+254712345678`. */
|
|
13
|
+
phoneNumber?: string | null;
|
|
14
|
+
email?: string | null;
|
|
15
|
+
/** `YYYY-MM-DD`. A calendar date, never a timestamp. */
|
|
16
|
+
dateOfBirth?: string | null;
|
|
17
|
+
gender?: PartnerMemberGender | null;
|
|
18
|
+
documentType?: PartnerMemberDocumentType | null;
|
|
19
|
+
/**
|
|
20
|
+
* ALWAYS masked by the API - `***67`, never the whole number.
|
|
21
|
+
*
|
|
22
|
+
* An identity document cannot be rotated and outlives any credential, and
|
|
23
|
+
* an operator does not need it in order to act. Treat this as display-only.
|
|
24
|
+
*/
|
|
25
|
+
documentNumber?: string | null;
|
|
26
|
+
documentCountryCode?: string | null;
|
|
27
|
+
/** Partner-declared extras, keyed by that partner's descriptor field keys. */
|
|
28
|
+
attributes?: Record<string, string> | null;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Why a partner cannot yet be told about somebody.
|
|
32
|
+
*
|
|
33
|
+
* MISSING and MALFORMED are not the same problem and do not have the same
|
|
34
|
+
* remedy: one needs the fact collected, the other needs it corrected. An
|
|
35
|
+
* operator staring at a filled-in date of birth the platform calls "missing"
|
|
36
|
+
* has nothing to do.
|
|
37
|
+
*/
|
|
38
|
+
export interface UnsatisfiedMemberProfileFieldDto {
|
|
39
|
+
field: string;
|
|
40
|
+
reason: 'MISSING' | 'MALFORMED';
|
|
41
|
+
detail?: string;
|
|
42
|
+
}
|
|
43
|
+
/** One dependent carried on somebody else's membership. */
|
|
44
|
+
export interface PartnerMembershipDependentDto {
|
|
45
|
+
dependentReference: string;
|
|
46
|
+
userId?: number | null;
|
|
47
|
+
/** The partner's own id. Absent means the partner has NOT accepted them. */
|
|
48
|
+
partnerDependentId?: string | null;
|
|
49
|
+
name: string;
|
|
50
|
+
/** The name the partner accepted, which many partners will not let change. */
|
|
51
|
+
partnerName?: string | null;
|
|
52
|
+
synced: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* True when Clarion has stopped covering them but the partner will only
|
|
55
|
+
* drop them at the end of the term - a real, dated divergence rather than
|
|
56
|
+
* something to hide.
|
|
57
|
+
*/
|
|
58
|
+
pendingRemovalAtTermEnd?: boolean;
|
|
59
|
+
lastErrorMessage?: string | null;
|
|
60
|
+
syncedAt?: string | null;
|
|
61
|
+
}
|
|
62
|
+
/** One subscriber's registration with one partner, as the API returns it. */
|
|
63
|
+
export interface PartnerMembershipDto {
|
|
64
|
+
id: number;
|
|
65
|
+
membershipReference: string;
|
|
66
|
+
organizationId: number;
|
|
67
|
+
integrationId: number;
|
|
68
|
+
providerCode: PartnerProviderCode;
|
|
69
|
+
subjectType: PartnerMembershipSubjectType;
|
|
70
|
+
subjectReference: string;
|
|
71
|
+
userId?: number | null;
|
|
72
|
+
subscriptionId?: number | null;
|
|
73
|
+
packageId?: number | null;
|
|
74
|
+
membershipLabel?: string | null;
|
|
75
|
+
status: PartnerMembershipStatus;
|
|
76
|
+
/** Present only once the partner has issued one. */
|
|
77
|
+
partnerMemberId?: string | null;
|
|
78
|
+
/** The partner's own status word, verbatim, e.g. `waitingPeriod`. */
|
|
79
|
+
partnerStatus?: string | null;
|
|
80
|
+
memberState?: PartnerMemberState | null;
|
|
81
|
+
/**
|
|
82
|
+
* When the partner's cover actually begins and ends.
|
|
83
|
+
*
|
|
84
|
+
* Distinct from the membership being ACTIVE. A member can be registered,
|
|
85
|
+
* hold a real member id, and not be covered yet.
|
|
86
|
+
*/
|
|
87
|
+
coverageStartsAt?: string | null;
|
|
88
|
+
coverageEndsAt?: string | null;
|
|
89
|
+
/** True when the partner has confirmed cover is in force right now. */
|
|
90
|
+
coverActive?: boolean;
|
|
91
|
+
partnerSeats?: number | null;
|
|
92
|
+
/** The member's name. The LIST carries this and nothing else personal. */
|
|
93
|
+
memberName?: string | null;
|
|
94
|
+
/** Present on the detail endpoint only, with the document number masked. */
|
|
95
|
+
profile?: PartnerMemberProfileDto | null;
|
|
96
|
+
unsatisfiedFields: UnsatisfiedMemberProfileFieldDto[];
|
|
97
|
+
dependents: PartnerMembershipDependentDto[];
|
|
98
|
+
attemptCount: number;
|
|
99
|
+
maxAttempts: number;
|
|
100
|
+
nextAttemptAt?: string | null;
|
|
101
|
+
failureReason?: string | null;
|
|
102
|
+
lastErrorCode?: string | null;
|
|
103
|
+
lastErrorMessage?: string | null;
|
|
104
|
+
countryCode: string;
|
|
105
|
+
provisionedAt?: string | null;
|
|
106
|
+
lastSyncedAt?: string | null;
|
|
107
|
+
createdAt: string;
|
|
108
|
+
updatedAt: string;
|
|
109
|
+
}
|
|
110
|
+
/** Filters for the membership list. */
|
|
111
|
+
export interface PartnerMembershipQueryDto {
|
|
112
|
+
integrationId?: number;
|
|
113
|
+
status?: PartnerMembershipStatus;
|
|
114
|
+
subjectType?: PartnerMembershipSubjectType;
|
|
115
|
+
userId?: number;
|
|
116
|
+
subscriptionId?: number;
|
|
117
|
+
search?: string;
|
|
118
|
+
/** Narrow to the memberships an operator can actually unblock. */
|
|
119
|
+
needsAttention?: boolean;
|
|
120
|
+
page?: number;
|
|
121
|
+
limit?: number;
|
|
122
|
+
}
|
|
123
|
+
/** An operator filling in or correcting what a partner is waiting for. */
|
|
124
|
+
export interface UpdatePartnerMembershipDto {
|
|
125
|
+
profile?: Partial<PartnerMemberProfileDto>;
|
|
126
|
+
/** Queue another attempt straight away, rather than waiting for the worker. */
|
|
127
|
+
retryNow?: boolean;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* One thing a partner needs to know about a person, described so the admin can
|
|
131
|
+
* render a form for it without knowing which partner it is.
|
|
132
|
+
*
|
|
133
|
+
* The same shape as a partnership's `configFields`, and for the same reason: a
|
|
134
|
+
* partner that starts wanting a policy number costs a descriptor change and
|
|
135
|
+
* nothing else.
|
|
136
|
+
*/
|
|
137
|
+
export interface PartnerMemberProfileFieldDescriptorDto {
|
|
138
|
+
key: string;
|
|
139
|
+
label: string;
|
|
140
|
+
description?: string;
|
|
141
|
+
required: boolean;
|
|
142
|
+
type: 'string' | 'number' | 'boolean' | 'enum' | 'date';
|
|
143
|
+
allowedValues?: string[];
|
|
144
|
+
pattern?: string;
|
|
145
|
+
maxLength?: number;
|
|
146
|
+
/** Where an operator is likely to find this, shown as help text. */
|
|
147
|
+
sourceHint?: string;
|
|
148
|
+
}
|
|
149
|
+
/** What one partner needs before it will register a member. */
|
|
150
|
+
export interface PartnerMembershipDescriptorDto {
|
|
151
|
+
profileFields: PartnerMemberProfileFieldDescriptorDto[];
|
|
152
|
+
requiredProfileFields: PartnerMemberProfileField[];
|
|
153
|
+
optionalProfileFields: PartnerMemberProfileField[];
|
|
154
|
+
supportsDependents: boolean;
|
|
155
|
+
maxDependents: number | null;
|
|
156
|
+
quotesMemberOnDispatch: boolean;
|
|
157
|
+
quotableStates?: PartnerMemberState[];
|
|
158
|
+
identityDocumentOptional: boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Shown beside the membership settings - e.g. that a new member serves a
|
|
161
|
+
* waiting period before cover begins. Operators need to know that, and it
|
|
162
|
+
* is not inferable from anything else on screen.
|
|
163
|
+
*/
|
|
164
|
+
notes?: string;
|
|
165
|
+
}
|
|
166
|
+
/** The demographic details captured against a person, for a partner to use. */
|
|
167
|
+
export interface UpsertMemberProfileDto {
|
|
168
|
+
userId?: number;
|
|
169
|
+
corporateClientMemberId?: number;
|
|
170
|
+
dateOfBirth?: string;
|
|
171
|
+
gender?: PartnerMemberGender;
|
|
172
|
+
documentType?: PartnerMemberDocumentType;
|
|
173
|
+
documentNumber?: string;
|
|
174
|
+
documentCountryCode?: string;
|
|
175
|
+
attributes?: Record<string, string>;
|
|
176
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PartnerIntegrationEnvironment, PartnerProviderCode, PartnerServiceCapability } from '../enums/partner-enums';
|
|
2
|
+
import { PartnerMembershipDescriptorDto } from './partner-membership.dto';
|
|
2
3
|
/** A credential a partnership must supply, described by the backend adapter. */
|
|
3
4
|
export interface PartnerProviderCredentialFieldDto {
|
|
4
5
|
key: string;
|
|
@@ -53,6 +54,15 @@ export interface PartnerProviderDescriptorDto {
|
|
|
53
54
|
supportsAmendment: boolean;
|
|
54
55
|
/** True when the partner can be asked whether a request already exists. */
|
|
55
56
|
supportsDuplicateDetection: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* True when this partner registers people as MEMBERS ahead of an emergency.
|
|
59
|
+
*
|
|
60
|
+
* When false the admin must not offer membership settings at all: a toggle
|
|
61
|
+
* that provisions nothing is worse than no toggle.
|
|
62
|
+
*/
|
|
63
|
+
supportsMembership: boolean;
|
|
64
|
+
/** What this partner needs to register a member. Present when the flag is true. */
|
|
65
|
+
membership?: PartnerMembershipDescriptorDto;
|
|
56
66
|
available: boolean;
|
|
57
67
|
}
|
|
58
68
|
/** Result of the admin's "test connection" button. Never creates an emergency. */
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { IncidentPartnerRoutingStatus, PartnerEngagementState, PartnerCoverageMatchType, PartnerDispatchStatus, PartnerIntegrationStatus, PartnerRoutingMode, PartnerServiceCapability } from '../enums/partner-enums';
|
|
1
|
+
import { IncidentPartnerRoutingStatus, PartnerEngagementState, PartnerCoverageMatchType, PartnerDispatchStatus, PartnerIntegrationStatus, PartnerMemberDocumentType, PartnerMemberGender, PartnerMemberProfileField, PartnerMemberState, PartnerMembershipPackageScope, PartnerMembershipStatus, PartnerMembershipSubjectType, PartnerRoutingMode, PartnerServiceCapability } from '../enums/partner-enums';
|
|
2
|
+
import { UnsatisfiedMemberProfileFieldDto } from '../interfaces/partner-membership.dto';
|
|
2
3
|
/**
|
|
3
4
|
* Human labels for the partner enums.
|
|
4
5
|
*
|
|
@@ -48,3 +49,52 @@ export interface PartnerActionCapabilities {
|
|
|
48
49
|
supportsWithdrawal?: boolean;
|
|
49
50
|
supportsAmendment?: boolean;
|
|
50
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* How a membership's own lifecycle reads on screen.
|
|
54
|
+
*
|
|
55
|
+
* Worded as what an operator should DO, not as an internal state name. Nobody
|
|
56
|
+
* has to know what PROVISIONING means; they have to know whether somebody is
|
|
57
|
+
* waiting on them.
|
|
58
|
+
*/
|
|
59
|
+
export declare const PARTNER_MEMBERSHIP_STATUS_LABELS: Readonly<Record<PartnerMembershipStatus, string>>;
|
|
60
|
+
/**
|
|
61
|
+
* How the PARTNER's own view of a member reads.
|
|
62
|
+
*
|
|
63
|
+
* Kept apart from the status above because the two answer different questions,
|
|
64
|
+
* and collapsing them is how somebody gets told they are covered on the day
|
|
65
|
+
* they paid: "Registered" means the partner has issued a member id, and
|
|
66
|
+
* "Waiting period" means their cover has not started.
|
|
67
|
+
*/
|
|
68
|
+
export declare const PARTNER_MEMBER_STATE_LABELS: Readonly<Record<PartnerMemberState, string>>;
|
|
69
|
+
export declare const PARTNER_MEMBERSHIP_SUBJECT_TYPE_LABELS: Readonly<Record<PartnerMembershipSubjectType, string>>;
|
|
70
|
+
export declare const PARTNER_MEMBERSHIP_PACKAGE_SCOPE_LABELS: Readonly<Record<PartnerMembershipPackageScope, string>>;
|
|
71
|
+
export declare const PARTNER_MEMBER_GENDER_LABELS: Readonly<Record<PartnerMemberGender, string>>;
|
|
72
|
+
export declare const PARTNER_MEMBER_DOCUMENT_TYPE_LABELS: Readonly<Record<PartnerMemberDocumentType, string>>;
|
|
73
|
+
/** The provider-neutral profile fields, named for a person to read. */
|
|
74
|
+
export declare const PARTNER_MEMBER_PROFILE_FIELD_LABELS: Readonly<Record<PartnerMemberProfileField, string>>;
|
|
75
|
+
export declare function partnerMembershipStatusTone(status: PartnerMembershipStatus): 'success' | 'warn' | 'danger' | 'neutral';
|
|
76
|
+
/**
|
|
77
|
+
* One line saying what a membership is waiting on, or null when nothing is.
|
|
78
|
+
*
|
|
79
|
+
* The whole point of the membership screen. An operator should never have to
|
|
80
|
+
* open a record to find out whether it needs them, and should never be shown a
|
|
81
|
+
* partner's raw error where a plain sentence would do.
|
|
82
|
+
*/
|
|
83
|
+
export declare function describeMembershipAttention(membership: {
|
|
84
|
+
status: PartnerMembershipStatus;
|
|
85
|
+
unsatisfiedFields?: UnsatisfiedMemberProfileFieldDto[];
|
|
86
|
+
lastErrorMessage?: string | null;
|
|
87
|
+
}): string | null;
|
|
88
|
+
/**
|
|
89
|
+
* What the partner's cover actually says, in a sentence.
|
|
90
|
+
*
|
|
91
|
+
* Separate from the status chip because "registered" and "covered" are
|
|
92
|
+
* different facts, and a partner that starts a member on a waiting period would
|
|
93
|
+
* otherwise be reported as though cover began the day they paid.
|
|
94
|
+
*/
|
|
95
|
+
export declare function describeMembershipCover(membership: {
|
|
96
|
+
status: PartnerMembershipStatus;
|
|
97
|
+
memberState?: PartnerMemberState | null;
|
|
98
|
+
coverActive?: boolean;
|
|
99
|
+
coverageStartsAt?: string | null;
|
|
100
|
+
}): string | null;
|
|
@@ -7,6 +7,13 @@ export declare enum PermissionActions {
|
|
|
7
7
|
READ_PARTNER = "read:partner",
|
|
8
8
|
UPDATE_PARTNER = "update:partner",
|
|
9
9
|
DELETE_PARTNER = "delete:partner",
|
|
10
|
+
READ_PARTNER_DISPATCH = "read:partner-dispatch",
|
|
11
|
+
APPROVE_PARTNER_DISPATCH = "approve:partner-dispatch",
|
|
12
|
+
UPDATE_PARTNER_DISPATCH = "update:partner-dispatch",
|
|
13
|
+
CANCEL_PARTNER_DISPATCH = "cancel:partner-dispatch",
|
|
14
|
+
RESEND_PARTNER_DISPATCH = "resend:partner-dispatch",
|
|
15
|
+
READ_PARTNER_MEMBERSHIP = "read:partner-membership",
|
|
16
|
+
MANAGE_PARTNER_MEMBERSHIP = "manage:partner-membership",
|
|
10
17
|
CREATE_CONTROL_CENTRE = "create:control-centre",
|
|
11
18
|
READ_CONTROL_CENTRE = "read:control-centre",
|
|
12
19
|
UPDATE_CONTROL_CENTRE = "update:control-centre",
|
|
@@ -30,5 +37,26 @@ export declare enum PermissionActions {
|
|
|
30
37
|
CREATE_RESPONSE_UNIT = "create:response-unit",
|
|
31
38
|
READ_RESPONSE_UNIT = "read:response-unit",
|
|
32
39
|
UPDATE_RESPONSE_UNIT = "update:response-unit",
|
|
33
|
-
DELETE_RESPONSE_UNIT = "delete:response-unit"
|
|
40
|
+
DELETE_RESPONSE_UNIT = "delete:response-unit",
|
|
41
|
+
CREATE_SUPPORT_TICKET = "create:support-ticket",
|
|
42
|
+
READ_SUPPORT_TICKET = "read:support-ticket",
|
|
43
|
+
UPDATE_SUPPORT_TICKET = "update:support-ticket",
|
|
44
|
+
ASSIGN_SUPPORT_TICKET = "assign:support-ticket",
|
|
45
|
+
REPLY_SUPPORT_TICKET = "reply:support-ticket",
|
|
46
|
+
NOTE_SUPPORT_TICKET = "note:support-ticket",
|
|
47
|
+
CHANGE_STATUS_SUPPORT_TICKET = "change-status:support-ticket",
|
|
48
|
+
CHANGE_PRIORITY_SUPPORT_TICKET = "change-priority:support-ticket",
|
|
49
|
+
CLOSE_SUPPORT_TICKET = "close:support-ticket",
|
|
50
|
+
REOPEN_SUPPORT_TICKET = "reopen:support-ticket",
|
|
51
|
+
READ_SUPPORT_FEEDBACK = "read:support-feedback",
|
|
52
|
+
REVIEW_SUPPORT_FEEDBACK = "review:support-feedback",
|
|
53
|
+
RESPOND_SUPPORT_FEEDBACK = "respond:support-feedback",
|
|
54
|
+
CONVERT_SUPPORT_FEEDBACK = "convert:support-feedback",
|
|
55
|
+
MANAGE_SUPPORT_QUEUE = "manage:support-queue",
|
|
56
|
+
MANAGE_SUPPORT_TEAM = "manage:support-team",
|
|
57
|
+
MANAGE_SUPPORT_SLA = "manage:support-sla",
|
|
58
|
+
MANAGE_SUPPORT_CONFIGURATION = "manage:support-configuration",
|
|
59
|
+
READ_SUPPORT_REPORT = "read:support-report",
|
|
60
|
+
READ_SUPPORT_SYNC = "read:support-sync",
|
|
61
|
+
MANAGE_SUPPORT_SYNC = "manage:support-sync"
|
|
34
62
|
}
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Frontend mirrors of the support enums in grm-shared-library.
|
|
3
|
+
*
|
|
4
|
+
* Kept in ONE file rather than one per enum: the admin's support console
|
|
5
|
+
* imports most of them together and the set only means anything as a whole. The
|
|
6
|
+
* values are byte-identical to the backend's, because they travel over the wire
|
|
7
|
+
* as strings and any drift would show up as a silently unstyled chip rather
|
|
8
|
+
* than a compile error.
|
|
9
|
+
*/
|
|
10
|
+
/** The helpdesk a deployment mirrors tickets to, if any. */
|
|
11
|
+
export declare enum SupportProviderCode {
|
|
12
|
+
ZAMMAD = "ZAMMAD",
|
|
13
|
+
FRESHDESK = "FRESHDESK",
|
|
14
|
+
/** No external helpdesk. Clarion is the whole system of record. */
|
|
15
|
+
NONE = "NONE"
|
|
16
|
+
}
|
|
17
|
+
/** What a helpdesk adapter is able to do. The admin builds its buttons from this. */
|
|
18
|
+
export declare enum SupportProviderCapability {
|
|
19
|
+
CREATE_TICKET = "CREATE_TICKET",
|
|
20
|
+
UPDATE_TICKET = "UPDATE_TICKET",
|
|
21
|
+
PUBLIC_REPLY = "PUBLIC_REPLY",
|
|
22
|
+
INTERNAL_NOTE = "INTERNAL_NOTE",
|
|
23
|
+
ASSIGN_TICKET = "ASSIGN_TICKET",
|
|
24
|
+
CHANGE_STATUS = "CHANGE_STATUS",
|
|
25
|
+
CLOSE_REOPEN = "CLOSE_REOPEN",
|
|
26
|
+
ATTACHMENTS = "ATTACHMENTS",
|
|
27
|
+
CONTACTS = "CONTACTS",
|
|
28
|
+
SEARCH = "SEARCH",
|
|
29
|
+
WEBHOOKS = "WEBHOOKS",
|
|
30
|
+
FETCH_TICKET = "FETCH_TICKET"
|
|
31
|
+
}
|
|
32
|
+
/** Lifecycle of a support ticket. */
|
|
33
|
+
export declare enum SupportTicketStatus {
|
|
34
|
+
NEW = "NEW",
|
|
35
|
+
OPEN = "OPEN",
|
|
36
|
+
ASSIGNED = "ASSIGNED",
|
|
37
|
+
IN_PROGRESS = "IN_PROGRESS",
|
|
38
|
+
WAITING_ON_CUSTOMER = "WAITING_ON_CUSTOMER",
|
|
39
|
+
WAITING_ON_INTERNAL_TEAM = "WAITING_ON_INTERNAL_TEAM",
|
|
40
|
+
RESOLVED = "RESOLVED",
|
|
41
|
+
CLOSED = "CLOSED",
|
|
42
|
+
REOPENED = "REOPENED",
|
|
43
|
+
CANCELLED = "CANCELLED"
|
|
44
|
+
}
|
|
45
|
+
/** How urgently a ticket needs answering. */
|
|
46
|
+
export declare enum SupportTicketPriority {
|
|
47
|
+
CRITICAL = "CRITICAL",
|
|
48
|
+
URGENT = "URGENT",
|
|
49
|
+
HIGH = "HIGH",
|
|
50
|
+
NORMAL = "NORMAL",
|
|
51
|
+
LOW = "LOW"
|
|
52
|
+
}
|
|
53
|
+
/** How a ticket reached Clarion. */
|
|
54
|
+
export declare enum SupportTicketChannel {
|
|
55
|
+
MOBILE_APP = "MOBILE_APP",
|
|
56
|
+
WEB_APP = "WEB_APP",
|
|
57
|
+
AGENT_PORTAL = "AGENT_PORTAL",
|
|
58
|
+
PROVIDER = "PROVIDER",
|
|
59
|
+
EMAIL = "EMAIL",
|
|
60
|
+
PHONE = "PHONE",
|
|
61
|
+
SMS = "SMS",
|
|
62
|
+
CHAT = "CHAT",
|
|
63
|
+
SYSTEM = "SYSTEM",
|
|
64
|
+
API = "API"
|
|
65
|
+
}
|
|
66
|
+
/** Who or what caused the ticket to exist. */
|
|
67
|
+
export declare enum SupportTicketSource {
|
|
68
|
+
CUSTOMER = "CUSTOMER",
|
|
69
|
+
AGENT = "AGENT",
|
|
70
|
+
SYSTEM = "SYSTEM",
|
|
71
|
+
FEEDBACK_CONVERSION = "FEEDBACK_CONVERSION",
|
|
72
|
+
PROVIDER_SYNC = "PROVIDER_SYNC",
|
|
73
|
+
CHAT_ESCALATION = "CHAT_ESCALATION"
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* What kind of entry a conversation item is.
|
|
77
|
+
*
|
|
78
|
+
* INTERNAL_NOTE is the one the UI must never render on a customer-facing
|
|
79
|
+
* surface. The admin styles it distinctly for the same reason - an agent who
|
|
80
|
+
* cannot tell at a glance which entries the customer can see will eventually
|
|
81
|
+
* write the wrong thing in the wrong box.
|
|
82
|
+
*/
|
|
83
|
+
export declare enum SupportTicketMessageType {
|
|
84
|
+
CUSTOMER_MESSAGE = "CUSTOMER_MESSAGE",
|
|
85
|
+
AGENT_REPLY = "AGENT_REPLY",
|
|
86
|
+
INTERNAL_NOTE = "INTERNAL_NOTE",
|
|
87
|
+
SYSTEM_MESSAGE = "SYSTEM_MESSAGE",
|
|
88
|
+
STATUS_MESSAGE = "STATUS_MESSAGE"
|
|
89
|
+
}
|
|
90
|
+
/** Who wrote a conversation entry. */
|
|
91
|
+
export declare enum SupportMessageAuthorType {
|
|
92
|
+
CUSTOMER = "CUSTOMER",
|
|
93
|
+
AGENT = "AGENT",
|
|
94
|
+
SYSTEM = "SYSTEM",
|
|
95
|
+
PROVIDER_AGENT = "PROVIDER_AGENT"
|
|
96
|
+
}
|
|
97
|
+
/** Whether an entry was written here or arrived from the helpdesk. */
|
|
98
|
+
export declare enum SupportMessageOrigin {
|
|
99
|
+
CLARION = "CLARION",
|
|
100
|
+
PROVIDER = "PROVIDER"
|
|
101
|
+
}
|
|
102
|
+
/** Where a ticket stands against one SLA target. */
|
|
103
|
+
export declare enum SupportSlaState {
|
|
104
|
+
ON_TRACK = "ON_TRACK",
|
|
105
|
+
WARNING = "WARNING",
|
|
106
|
+
BREACHED = "BREACHED",
|
|
107
|
+
PAUSED = "PAUSED",
|
|
108
|
+
MET = "MET",
|
|
109
|
+
NOT_APPLICABLE = "NOT_APPLICABLE"
|
|
110
|
+
}
|
|
111
|
+
/** Which clock a state describes. */
|
|
112
|
+
export declare enum SupportSlaTarget {
|
|
113
|
+
FIRST_RESPONSE = "FIRST_RESPONSE",
|
|
114
|
+
RESOLUTION = "RESOLUTION"
|
|
115
|
+
}
|
|
116
|
+
/** How a policy measures elapsed time. */
|
|
117
|
+
export declare enum SupportSlaClock {
|
|
118
|
+
CALENDAR = "CALENDAR",
|
|
119
|
+
BUSINESS = "BUSINESS"
|
|
120
|
+
}
|
|
121
|
+
/** What a customer is telling us. */
|
|
122
|
+
export declare enum CustomerFeedbackType {
|
|
123
|
+
BUG_REPORT = "BUG_REPORT",
|
|
124
|
+
FEATURE_REQUEST = "FEATURE_REQUEST",
|
|
125
|
+
COMPLAINT = "COMPLAINT",
|
|
126
|
+
COMPLIMENT = "COMPLIMENT",
|
|
127
|
+
GENERAL = "GENERAL",
|
|
128
|
+
SERVICE_RATING = "SERVICE_RATING",
|
|
129
|
+
SUPPORT_RATING = "SUPPORT_RATING"
|
|
130
|
+
}
|
|
131
|
+
/** Where a piece of feedback is in its review workflow. */
|
|
132
|
+
export declare enum CustomerFeedbackStatus {
|
|
133
|
+
NEW = "NEW",
|
|
134
|
+
UNDER_REVIEW = "UNDER_REVIEW",
|
|
135
|
+
ACKNOWLEDGED = "ACKNOWLEDGED",
|
|
136
|
+
RESPONDED = "RESPONDED",
|
|
137
|
+
CONVERTED_TO_TICKET = "CONVERTED_TO_TICKET",
|
|
138
|
+
CLOSED = "CLOSED",
|
|
139
|
+
DISMISSED = "DISMISSED"
|
|
140
|
+
}
|
|
141
|
+
/** Where the feedback was submitted from. */
|
|
142
|
+
export declare enum CustomerFeedbackChannel {
|
|
143
|
+
MOBILE_APP = "MOBILE_APP",
|
|
144
|
+
WEB_APP = "WEB_APP",
|
|
145
|
+
AGENT_PORTAL = "AGENT_PORTAL",
|
|
146
|
+
API = "API"
|
|
147
|
+
}
|
|
148
|
+
/** Coarse sentiment, derived from type and rating - never from the message text. */
|
|
149
|
+
export declare enum CustomerFeedbackSentiment {
|
|
150
|
+
POSITIVE = "POSITIVE",
|
|
151
|
+
NEUTRAL = "NEUTRAL",
|
|
152
|
+
NEGATIVE = "NEGATIVE",
|
|
153
|
+
UNKNOWN = "UNKNOWN"
|
|
154
|
+
}
|
|
155
|
+
/** Who wrote an entry in a feedback thread. */
|
|
156
|
+
export declare enum CustomerFeedbackMessageAuthorType {
|
|
157
|
+
CUSTOMER = "CUSTOMER",
|
|
158
|
+
REVIEWER = "REVIEWER",
|
|
159
|
+
SYSTEM = "SYSTEM"
|
|
160
|
+
}
|
|
161
|
+
/** The kind of Clarion record a ticket or a piece of feedback is about. */
|
|
162
|
+
export declare enum SupportRelatedEntityType {
|
|
163
|
+
INCIDENT = "INCIDENT",
|
|
164
|
+
BILLING_SUBSCRIPTION = "BILLING_SUBSCRIPTION",
|
|
165
|
+
BILLING_INVOICE = "BILLING_INVOICE",
|
|
166
|
+
BILLING_PAYMENT = "BILLING_PAYMENT",
|
|
167
|
+
BILLING_PACKAGE = "BILLING_PACKAGE",
|
|
168
|
+
CHAT_CONVERSATION = "CHAT_CONVERSATION",
|
|
169
|
+
NEWSFEED_POST = "NEWSFEED_POST",
|
|
170
|
+
NEWSFEED_COMMENT = "NEWSFEED_COMMENT",
|
|
171
|
+
PARTNER_DISPATCH = "PARTNER_DISPATCH",
|
|
172
|
+
RESPONSE_UNIT = "RESPONSE_UNIT",
|
|
173
|
+
ORGANIZATION = "ORGANIZATION",
|
|
174
|
+
USER = "USER",
|
|
175
|
+
APP_SCREEN = "APP_SCREEN",
|
|
176
|
+
SUPPORT_TICKET = "SUPPORT_TICKET",
|
|
177
|
+
CUSTOMER_FEEDBACK = "CUSTOMER_FEEDBACK",
|
|
178
|
+
OTHER = "OTHER"
|
|
179
|
+
}
|
|
180
|
+
/** Which Clarion record a synchronization row is mirroring. */
|
|
181
|
+
export declare enum SupportSyncEntityType {
|
|
182
|
+
TICKET = "TICKET",
|
|
183
|
+
MESSAGE = "MESSAGE",
|
|
184
|
+
ATTACHMENT = "ATTACHMENT",
|
|
185
|
+
CONTACT = "CONTACT"
|
|
186
|
+
}
|
|
187
|
+
/** What a synchronization row is trying to do at the provider. */
|
|
188
|
+
export declare enum SupportSyncOperation {
|
|
189
|
+
UPSERT_CONTACT = "UPSERT_CONTACT",
|
|
190
|
+
CREATE_TICKET = "CREATE_TICKET",
|
|
191
|
+
UPDATE_TICKET = "UPDATE_TICKET",
|
|
192
|
+
ADD_PUBLIC_REPLY = "ADD_PUBLIC_REPLY",
|
|
193
|
+
ADD_INTERNAL_NOTE = "ADD_INTERNAL_NOTE",
|
|
194
|
+
ASSIGN_TICKET = "ASSIGN_TICKET",
|
|
195
|
+
CHANGE_STATUS = "CHANGE_STATUS",
|
|
196
|
+
ADD_ATTACHMENT = "ADD_ATTACHMENT",
|
|
197
|
+
CLOSE_TICKET = "CLOSE_TICKET",
|
|
198
|
+
REOPEN_TICKET = "REOPEN_TICKET",
|
|
199
|
+
FETCH_TICKET = "FETCH_TICKET"
|
|
200
|
+
}
|
|
201
|
+
/** Where a synchronization row has got to. */
|
|
202
|
+
export declare enum SupportSyncStatus {
|
|
203
|
+
PENDING = "PENDING",
|
|
204
|
+
IN_PROGRESS = "IN_PROGRESS",
|
|
205
|
+
SUCCEEDED = "SUCCEEDED",
|
|
206
|
+
FAILED = "FAILED",
|
|
207
|
+
DEAD_LETTER = "DEAD_LETTER",
|
|
208
|
+
SKIPPED = "SKIPPED",
|
|
209
|
+
SUPERSEDED = "SUPERSEDED"
|
|
210
|
+
}
|
|
211
|
+
/** Why a synchronization attempt failed. */
|
|
212
|
+
export declare enum SupportSyncFailureReason {
|
|
213
|
+
AUTHENTICATION_FAILED = "AUTHENTICATION_FAILED",
|
|
214
|
+
AUTHORIZATION_FAILED = "AUTHORIZATION_FAILED",
|
|
215
|
+
INVALID_PAYLOAD = "INVALID_PAYLOAD",
|
|
216
|
+
NOT_FOUND = "NOT_FOUND",
|
|
217
|
+
PROVIDER_REJECTED = "PROVIDER_REJECTED",
|
|
218
|
+
RATE_LIMITED = "RATE_LIMITED",
|
|
219
|
+
PROVIDER_UNAVAILABLE = "PROVIDER_UNAVAILABLE",
|
|
220
|
+
TIMEOUT = "TIMEOUT",
|
|
221
|
+
CIRCUIT_OPEN = "CIRCUIT_OPEN",
|
|
222
|
+
PROVIDER_NOT_CONFIGURED = "PROVIDER_NOT_CONFIGURED",
|
|
223
|
+
UNREADABLE_SUCCESS = "UNREADABLE_SUCCESS",
|
|
224
|
+
UNKNOWN = "UNKNOWN"
|
|
225
|
+
}
|
|
226
|
+
/** How a provider webhook delivery was handled. */
|
|
227
|
+
export declare enum SupportWebhookStatus {
|
|
228
|
+
RECEIVED = "RECEIVED",
|
|
229
|
+
PROCESSED = "PROCESSED",
|
|
230
|
+
DUPLICATE = "DUPLICATE",
|
|
231
|
+
IGNORED = "IGNORED",
|
|
232
|
+
REJECTED = "REJECTED",
|
|
233
|
+
FAILED = "FAILED"
|
|
234
|
+
}
|
|
235
|
+
/** How a queue hands a ticket to an agent. Only MANUAL is honoured today. */
|
|
236
|
+
export declare enum SupportQueueAssignmentStrategy {
|
|
237
|
+
MANUAL = "MANUAL",
|
|
238
|
+
ROUND_ROBIN = "ROUND_ROBIN",
|
|
239
|
+
LEAST_BUSY = "LEAST_BUSY"
|
|
240
|
+
}
|
|
241
|
+
/** What a routing rule matches on. */
|
|
242
|
+
export declare enum SupportRoutingMatchType {
|
|
243
|
+
ANY = "ANY",
|
|
244
|
+
CATEGORY = "CATEGORY",
|
|
245
|
+
PRIORITY = "PRIORITY",
|
|
246
|
+
CHANNEL = "CHANNEL",
|
|
247
|
+
COUNTRY = "COUNTRY",
|
|
248
|
+
CONTROL_CENTRE = "CONTROL_CENTRE",
|
|
249
|
+
APP_ID = "APP_ID",
|
|
250
|
+
RELATED_ENTITY_TYPE = "RELATED_ENTITY_TYPE"
|
|
251
|
+
}
|
|
252
|
+
/** A support person's standing inside a team. */
|
|
253
|
+
export declare enum SupportTeamMemberRole {
|
|
254
|
+
AGENT = "AGENT",
|
|
255
|
+
SUPERVISOR = "SUPERVISOR",
|
|
256
|
+
MANAGER = "MANAGER"
|
|
257
|
+
}
|
|
258
|
+
/** Every audited support action, as a closed vocabulary the admin can filter on. */
|
|
259
|
+
export declare enum SupportAuditAction {
|
|
260
|
+
TICKET_CREATED = "TICKET_CREATED",
|
|
261
|
+
TICKET_UPDATED = "TICKET_UPDATED",
|
|
262
|
+
TICKET_ASSIGNED = "TICKET_ASSIGNED",
|
|
263
|
+
TICKET_REASSIGNED = "TICKET_REASSIGNED",
|
|
264
|
+
TICKET_UNASSIGNED = "TICKET_UNASSIGNED",
|
|
265
|
+
TICKET_STATUS_CHANGED = "TICKET_STATUS_CHANGED",
|
|
266
|
+
TICKET_PRIORITY_CHANGED = "TICKET_PRIORITY_CHANGED",
|
|
267
|
+
TICKET_CATEGORY_CHANGED = "TICKET_CATEGORY_CHANGED",
|
|
268
|
+
TICKET_QUEUE_CHANGED = "TICKET_QUEUE_CHANGED",
|
|
269
|
+
TICKET_CLOSED = "TICKET_CLOSED",
|
|
270
|
+
TICKET_REOPENED = "TICKET_REOPENED",
|
|
271
|
+
TICKET_CANCELLED = "TICKET_CANCELLED",
|
|
272
|
+
TICKET_TAGGED = "TICKET_TAGGED",
|
|
273
|
+
TICKET_UNTAGGED = "TICKET_UNTAGGED",
|
|
274
|
+
TICKET_WATCHER_ADDED = "TICKET_WATCHER_ADDED",
|
|
275
|
+
TICKET_WATCHER_REMOVED = "TICKET_WATCHER_REMOVED",
|
|
276
|
+
MESSAGE_ADDED = "MESSAGE_ADDED",
|
|
277
|
+
INTERNAL_NOTE_ADDED = "INTERNAL_NOTE_ADDED",
|
|
278
|
+
ATTACHMENT_ADDED = "ATTACHMENT_ADDED",
|
|
279
|
+
ATTACHMENT_ACCESSED = "ATTACHMENT_ACCESSED",
|
|
280
|
+
ATTACHMENT_REMOVED = "ATTACHMENT_REMOVED",
|
|
281
|
+
FEEDBACK_CREATED = "FEEDBACK_CREATED",
|
|
282
|
+
FEEDBACK_REVIEWED = "FEEDBACK_REVIEWED",
|
|
283
|
+
FEEDBACK_RESPONDED = "FEEDBACK_RESPONDED",
|
|
284
|
+
FEEDBACK_STATUS_CHANGED = "FEEDBACK_STATUS_CHANGED",
|
|
285
|
+
FEEDBACK_CONVERTED_TO_TICKET = "FEEDBACK_CONVERTED_TO_TICKET",
|
|
286
|
+
SLA_WARNING_RAISED = "SLA_WARNING_RAISED",
|
|
287
|
+
SLA_BREACHED = "SLA_BREACHED",
|
|
288
|
+
SLA_POLICY_CREATED = "SLA_POLICY_CREATED",
|
|
289
|
+
SLA_POLICY_UPDATED = "SLA_POLICY_UPDATED",
|
|
290
|
+
SLA_POLICY_DELETED = "SLA_POLICY_DELETED",
|
|
291
|
+
QUEUE_CREATED = "QUEUE_CREATED",
|
|
292
|
+
QUEUE_UPDATED = "QUEUE_UPDATED",
|
|
293
|
+
QUEUE_DELETED = "QUEUE_DELETED",
|
|
294
|
+
TEAM_CREATED = "TEAM_CREATED",
|
|
295
|
+
TEAM_UPDATED = "TEAM_UPDATED",
|
|
296
|
+
TEAM_DELETED = "TEAM_DELETED",
|
|
297
|
+
TEAM_MEMBER_ADDED = "TEAM_MEMBER_ADDED",
|
|
298
|
+
TEAM_MEMBER_REMOVED = "TEAM_MEMBER_REMOVED",
|
|
299
|
+
CATEGORY_CREATED = "CATEGORY_CREATED",
|
|
300
|
+
CATEGORY_UPDATED = "CATEGORY_UPDATED",
|
|
301
|
+
CATEGORY_DELETED = "CATEGORY_DELETED",
|
|
302
|
+
PROVIDER_SYNC_QUEUED = "PROVIDER_SYNC_QUEUED",
|
|
303
|
+
PROVIDER_SYNC_SUCCEEDED = "PROVIDER_SYNC_SUCCEEDED",
|
|
304
|
+
PROVIDER_SYNC_FAILED = "PROVIDER_SYNC_FAILED",
|
|
305
|
+
PROVIDER_SYNC_RETRIED = "PROVIDER_SYNC_RETRIED",
|
|
306
|
+
PROVIDER_SYNC_DEAD_LETTERED = "PROVIDER_SYNC_DEAD_LETTERED",
|
|
307
|
+
PROVIDER_RECONCILED = "PROVIDER_RECONCILED",
|
|
308
|
+
PROVIDER_WEBHOOK_RECEIVED = "PROVIDER_WEBHOOK_RECEIVED",
|
|
309
|
+
PROVIDER_WEBHOOK_REJECTED = "PROVIDER_WEBHOOK_REJECTED"
|
|
310
|
+
}
|
|
311
|
+
/** What an audit entry was about. */
|
|
312
|
+
export declare enum SupportAuditEntityType {
|
|
313
|
+
TICKET = "TICKET",
|
|
314
|
+
TICKET_MESSAGE = "TICKET_MESSAGE",
|
|
315
|
+
TICKET_ATTACHMENT = "TICKET_ATTACHMENT",
|
|
316
|
+
FEEDBACK = "FEEDBACK",
|
|
317
|
+
QUEUE = "QUEUE",
|
|
318
|
+
TEAM = "TEAM",
|
|
319
|
+
CATEGORY = "CATEGORY",
|
|
320
|
+
SLA_POLICY = "SLA_POLICY",
|
|
321
|
+
PROVIDER_SYNC = "PROVIDER_SYNC"
|
|
322
|
+
}
|
|
323
|
+
/** Who performed an audited action. */
|
|
324
|
+
export declare enum SupportActorType {
|
|
325
|
+
USER = "USER",
|
|
326
|
+
SYSTEM = "SYSTEM",
|
|
327
|
+
PROVIDER = "PROVIDER"
|
|
328
|
+
}
|
|
329
|
+
/** Live support update types delivered over the socket. */
|
|
330
|
+
export declare enum SupportRealtimeEventType {
|
|
331
|
+
TICKET_CREATED = "support.ticket.created",
|
|
332
|
+
TICKET_UPDATED = "support.ticket.updated",
|
|
333
|
+
TICKET_STATUS_CHANGED = "support.ticket.status.changed",
|
|
334
|
+
TICKET_PRIORITY_CHANGED = "support.ticket.priority.changed",
|
|
335
|
+
TICKET_ASSIGNED = "support.ticket.assigned",
|
|
336
|
+
TICKET_MESSAGE_CREATED = "support.ticket.message.created",
|
|
337
|
+
TICKET_SLA_CHANGED = "support.ticket.sla.changed",
|
|
338
|
+
TICKET_SYNC_CHANGED = "support.ticket.sync.changed",
|
|
339
|
+
FEEDBACK_CREATED = "support.feedback.created",
|
|
340
|
+
FEEDBACK_RESPONDED = "support.feedback.responded"
|
|
341
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './enums/support-enums';
|
|
2
|
+
export * from './interfaces/support-ticket.dto';
|
|
3
|
+
export * from './interfaces/customer-feedback.dto';
|
|
4
|
+
export * from './interfaces/support-configuration.dto';
|
|
5
|
+
export * from './interfaces/support-sync.dto';
|
|
6
|
+
export * from './interfaces/support-reports.dto';
|
|
7
|
+
export * from './utils/support-display.util';
|