clarion-shared-types 1.0.89 → 1.0.90
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/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 +13 -0
- package/dist/cjs/modules/permission/enums/permission-actions.enum.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 +13 -0
- package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
- 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 +7 -0
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* compile error.
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PartnerDispatchScope = exports.IncidentPartnerRoutingStatus = exports.PartnerAdapterOperation = exports.PartnerLocationProvider = exports.PartnerDispatchFailureReason = exports.PartnerEngagementState = exports.PartnerDispatchStatus = exports.PartnerCoverageMatchType = exports.PartnerIntegrationStatus = exports.PartnerIntegrationEnvironment = exports.PartnerRoutingMode = exports.PartnerServiceCapability = exports.PartnerProviderCode = void 0;
|
|
12
|
+
exports.PartnerMemberProfileField = exports.PartnerMemberDocumentType = exports.PartnerMemberGender = exports.PartnerMembershipPackageScope = exports.PartnerMemberState = exports.PartnerMembershipSubjectType = exports.PartnerMembershipStatus = exports.PartnerDispatchScope = exports.IncidentPartnerRoutingStatus = exports.PartnerAdapterOperation = exports.PartnerLocationProvider = exports.PartnerDispatchFailureReason = exports.PartnerEngagementState = exports.PartnerDispatchStatus = exports.PartnerCoverageMatchType = exports.PartnerIntegrationStatus = exports.PartnerIntegrationEnvironment = exports.PartnerRoutingMode = exports.PartnerServiceCapability = exports.PartnerProviderCode = void 0;
|
|
13
13
|
/** The third-party partner behind a partnership. */
|
|
14
14
|
var PartnerProviderCode;
|
|
15
15
|
(function (PartnerProviderCode) {
|
|
@@ -168,4 +168,98 @@ var PartnerDispatchScope;
|
|
|
168
168
|
PartnerDispatchScope["FAILED"] = "FAILED";
|
|
169
169
|
PartnerDispatchScope["NOT_ROUTED"] = "NOT_ROUTED";
|
|
170
170
|
})(PartnerDispatchScope || (exports.PartnerDispatchScope = PartnerDispatchScope = {}));
|
|
171
|
+
// --- memberships ---------------------------------------------------------
|
|
172
|
+
/**
|
|
173
|
+
* Where one subscriber's registration with one partner has got to.
|
|
174
|
+
*
|
|
175
|
+
* A membership is an ENRICHMENT and never a gate: nothing in this lifecycle can
|
|
176
|
+
* stop an emergency reaching a partner. A subscriber whose membership is
|
|
177
|
+
* INCOMPLETE_PROFILE or FAILED still has an SOS raised for them, just without a
|
|
178
|
+
* member id attached.
|
|
179
|
+
*/
|
|
180
|
+
var PartnerMembershipStatus;
|
|
181
|
+
(function (PartnerMembershipStatus) {
|
|
182
|
+
/** Decided that this person needs registering; not yet created at the partner. */
|
|
183
|
+
PartnerMembershipStatus["PENDING"] = "PENDING";
|
|
184
|
+
/** Blocked on personal details the partner requires and the platform lacks. */
|
|
185
|
+
PartnerMembershipStatus["INCOMPLETE_PROFILE"] = "INCOMPLETE_PROFILE";
|
|
186
|
+
/** A registration call is in flight at the partner. */
|
|
187
|
+
PartnerMembershipStatus["PROVISIONING"] = "PROVISIONING";
|
|
188
|
+
/** The partner has issued a member id. */
|
|
189
|
+
PartnerMembershipStatus["ACTIVE"] = "ACTIVE";
|
|
190
|
+
/** Every attempt failed for a reason retrying cannot fix. */
|
|
191
|
+
PartnerMembershipStatus["FAILED"] = "FAILED";
|
|
192
|
+
/**
|
|
193
|
+
* A registration was made and its outcome is UNKNOWN - the reply was lost.
|
|
194
|
+
* Deliberately a dead end: retrying a call that may have succeeded is how
|
|
195
|
+
* one person acquires two memberships, and a duplicate cannot be undone at
|
|
196
|
+
* the partner.
|
|
197
|
+
*/
|
|
198
|
+
PartnerMembershipStatus["NEEDS_REVIEW"] = "NEEDS_REVIEW";
|
|
199
|
+
/** The subscription behind it ended. The member is left in place at the partner. */
|
|
200
|
+
PartnerMembershipStatus["CANCELLED"] = "CANCELLED";
|
|
201
|
+
})(PartnerMembershipStatus || (exports.PartnerMembershipStatus = PartnerMembershipStatus = {}));
|
|
202
|
+
/** Who a membership belongs to, in Clarion's own vocabulary. */
|
|
203
|
+
var PartnerMembershipSubjectType;
|
|
204
|
+
(function (PartnerMembershipSubjectType) {
|
|
205
|
+
PartnerMembershipSubjectType["INDIVIDUAL_SUBSCRIBER"] = "INDIVIDUAL_SUBSCRIBER";
|
|
206
|
+
PartnerMembershipSubjectType["CORPORATE_MEMBER"] = "CORPORATE_MEMBER";
|
|
207
|
+
})(PartnerMembershipSubjectType || (exports.PartnerMembershipSubjectType = PartnerMembershipSubjectType = {}));
|
|
208
|
+
/**
|
|
209
|
+
* A member's standing with the partner, reduced to something every screen can
|
|
210
|
+
* rely on without learning any partner's vocabulary.
|
|
211
|
+
*
|
|
212
|
+
* PENDING_ACTIVATION is the one that matters: a member can exist, hold a real
|
|
213
|
+
* member id, and still not be covered - Rescue.co returns a brand-new member as
|
|
214
|
+
* `waitingPeriod`. A screen that collapses the two tells a subscriber they are
|
|
215
|
+
* covered on the day they paid.
|
|
216
|
+
*/
|
|
217
|
+
var PartnerMemberState;
|
|
218
|
+
(function (PartnerMemberState) {
|
|
219
|
+
PartnerMemberState["PENDING_ACTIVATION"] = "PENDING_ACTIVATION";
|
|
220
|
+
PartnerMemberState["ACTIVE"] = "ACTIVE";
|
|
221
|
+
PartnerMemberState["SUSPENDED"] = "SUSPENDED";
|
|
222
|
+
PartnerMemberState["LAPSED"] = "LAPSED";
|
|
223
|
+
PartnerMemberState["UNKNOWN"] = "UNKNOWN";
|
|
224
|
+
})(PartnerMemberState || (exports.PartnerMemberState = PartnerMemberState = {}));
|
|
225
|
+
/** Which packages' subscribers a partnership registers. */
|
|
226
|
+
var PartnerMembershipPackageScope;
|
|
227
|
+
(function (PartnerMembershipPackageScope) {
|
|
228
|
+
PartnerMembershipPackageScope["ALL"] = "ALL";
|
|
229
|
+
PartnerMembershipPackageScope["SELECTED"] = "SELECTED";
|
|
230
|
+
})(PartnerMembershipPackageScope || (exports.PartnerMembershipPackageScope = PartnerMembershipPackageScope = {}));
|
|
231
|
+
/** Gender, in the platform's neutral vocabulary - never a partner's spelling. */
|
|
232
|
+
var PartnerMemberGender;
|
|
233
|
+
(function (PartnerMemberGender) {
|
|
234
|
+
PartnerMemberGender["MALE"] = "MALE";
|
|
235
|
+
PartnerMemberGender["FEMALE"] = "FEMALE";
|
|
236
|
+
PartnerMemberGender["OTHER"] = "OTHER";
|
|
237
|
+
PartnerMemberGender["UNSPECIFIED"] = "UNSPECIFIED";
|
|
238
|
+
})(PartnerMemberGender || (exports.PartnerMemberGender = PartnerMemberGender = {}));
|
|
239
|
+
/** The kind of identity document a partner membership records. */
|
|
240
|
+
var PartnerMemberDocumentType;
|
|
241
|
+
(function (PartnerMemberDocumentType) {
|
|
242
|
+
PartnerMemberDocumentType["PASSPORT"] = "PASSPORT";
|
|
243
|
+
PartnerMemberDocumentType["NATIONAL_ID"] = "NATIONAL_ID";
|
|
244
|
+
PartnerMemberDocumentType["DRIVING_LICENCE"] = "DRIVING_LICENCE";
|
|
245
|
+
PartnerMemberDocumentType["OTHER"] = "OTHER";
|
|
246
|
+
})(PartnerMemberDocumentType || (exports.PartnerMemberDocumentType = PartnerMemberDocumentType = {}));
|
|
247
|
+
/**
|
|
248
|
+
* The provider-neutral facts about a person a partner membership may need.
|
|
249
|
+
*
|
|
250
|
+
* The VALUES are the property names on `PartnerMemberProfileDto`, which is what
|
|
251
|
+
* lets "which of this partner's required fields are missing?" be a generic loop
|
|
252
|
+
* in the admin rather than a per-partner if-ladder.
|
|
253
|
+
*/
|
|
254
|
+
var PartnerMemberProfileField;
|
|
255
|
+
(function (PartnerMemberProfileField) {
|
|
256
|
+
PartnerMemberProfileField["FULL_NAME"] = "fullName";
|
|
257
|
+
PartnerMemberProfileField["PHONE_NUMBER"] = "phoneNumber";
|
|
258
|
+
PartnerMemberProfileField["EMAIL"] = "email";
|
|
259
|
+
PartnerMemberProfileField["DATE_OF_BIRTH"] = "dateOfBirth";
|
|
260
|
+
PartnerMemberProfileField["GENDER"] = "gender";
|
|
261
|
+
PartnerMemberProfileField["DOCUMENT_TYPE"] = "documentType";
|
|
262
|
+
PartnerMemberProfileField["DOCUMENT_NUMBER"] = "documentNumber";
|
|
263
|
+
PartnerMemberProfileField["DOCUMENT_COUNTRY_CODE"] = "documentCountryCode";
|
|
264
|
+
})(PartnerMemberProfileField || (exports.PartnerMemberProfileField = PartnerMemberProfileField = {}));
|
|
171
265
|
//# sourceMappingURL=partner-enums.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partner-enums.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-enums.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"partner-enums.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-enums.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ __exportStar(require("./interfaces/partner-coverage-rule.dto"), exports);
|
|
|
23
23
|
__exportStar(require("./interfaces/partner-dispatch-progress.dto"), exports);
|
|
24
24
|
__exportStar(require("./interfaces/partner-dispatch.dto"), exports);
|
|
25
25
|
__exportStar(require("./interfaces/incident-partner-routing.dto"), exports);
|
|
26
|
+
__exportStar(require("./interfaces/partner-membership.dto"), exports);
|
|
26
27
|
// Utilities
|
|
27
28
|
__exportStar(require("./utils/partner-display.util"), exports);
|
|
28
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/partner/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,wDAAsC;AAEtC,oBAAoB;AACpB,oEAAkD;AAClD,uEAAqD;AACrD,yEAAuD;AACvD,6EAA2D;AAC3D,oEAAkD;AAClD,4EAA0D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/partner/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,wDAAsC;AAEtC,oBAAoB;AACpB,oEAAkD;AAClD,uEAAqD;AACrD,yEAAuD;AACvD,6EAA2D;AAC3D,oEAAkD;AAClD,4EAA0D;AAC1D,sEAAoD;AAEpD,YAAY;AACZ,+DAA6C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner-membership.dto.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-membership.dto.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PARTNER_COVERAGE_MATCH_TYPE_LABELS = exports.PARTNER_CAPABILITY_LABELS = exports.PARTNER_INTEGRATION_STATUS_LABELS = exports.PARTNER_ROUTING_MODE_LABELS = exports.INCIDENT_PARTNER_ROUTING_STATUS_LABELS = exports.PARTNER_ENGAGEMENT_STATE_LABELS = exports.PARTNER_DISPATCH_STATUS_LABELS = void 0;
|
|
3
|
+
exports.PARTNER_MEMBER_PROFILE_FIELD_LABELS = exports.PARTNER_MEMBER_DOCUMENT_TYPE_LABELS = exports.PARTNER_MEMBER_GENDER_LABELS = exports.PARTNER_MEMBERSHIP_PACKAGE_SCOPE_LABELS = exports.PARTNER_MEMBERSHIP_SUBJECT_TYPE_LABELS = exports.PARTNER_MEMBER_STATE_LABELS = exports.PARTNER_MEMBERSHIP_STATUS_LABELS = exports.PARTNER_COVERAGE_MATCH_TYPE_LABELS = exports.PARTNER_CAPABILITY_LABELS = exports.PARTNER_INTEGRATION_STATUS_LABELS = exports.PARTNER_ROUTING_MODE_LABELS = exports.INCIDENT_PARTNER_ROUTING_STATUS_LABELS = exports.PARTNER_ENGAGEMENT_STATE_LABELS = exports.PARTNER_DISPATCH_STATUS_LABELS = void 0;
|
|
4
4
|
exports.partnerDispatchStatusTone = partnerDispatchStatusTone;
|
|
5
5
|
exports.incidentPartnerRoutingTone = incidentPartnerRoutingTone;
|
|
6
6
|
exports.partnerDispatchActions = partnerDispatchActions;
|
|
7
|
+
exports.partnerMembershipStatusTone = partnerMembershipStatusTone;
|
|
8
|
+
exports.describeMembershipAttention = describeMembershipAttention;
|
|
9
|
+
exports.describeMembershipCover = describeMembershipCover;
|
|
7
10
|
const partner_enums_1 = require("../enums/partner-enums");
|
|
8
11
|
/**
|
|
9
12
|
* Human labels for the partner enums.
|
|
@@ -137,4 +140,151 @@ function partnerDispatchActions(status, capabilities = {}) {
|
|
|
137
140
|
status === partner_enums_1.PartnerDispatchStatus.EXPIRED,
|
|
138
141
|
};
|
|
139
142
|
}
|
|
143
|
+
// --- memberships ---------------------------------------------------------
|
|
144
|
+
/**
|
|
145
|
+
* How a membership's own lifecycle reads on screen.
|
|
146
|
+
*
|
|
147
|
+
* Worded as what an operator should DO, not as an internal state name. Nobody
|
|
148
|
+
* has to know what PROVISIONING means; they have to know whether somebody is
|
|
149
|
+
* waiting on them.
|
|
150
|
+
*/
|
|
151
|
+
exports.PARTNER_MEMBERSHIP_STATUS_LABELS = {
|
|
152
|
+
[partner_enums_1.PartnerMembershipStatus.PENDING]: 'Waiting to register',
|
|
153
|
+
[partner_enums_1.PartnerMembershipStatus.INCOMPLETE_PROFILE]: 'Details needed',
|
|
154
|
+
[partner_enums_1.PartnerMembershipStatus.PROVISIONING]: 'Registering',
|
|
155
|
+
[partner_enums_1.PartnerMembershipStatus.ACTIVE]: 'Registered',
|
|
156
|
+
[partner_enums_1.PartnerMembershipStatus.FAILED]: 'Registration failed',
|
|
157
|
+
[partner_enums_1.PartnerMembershipStatus.NEEDS_REVIEW]: 'Check with partner',
|
|
158
|
+
[partner_enums_1.PartnerMembershipStatus.CANCELLED]: 'No longer covered',
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* How the PARTNER's own view of a member reads.
|
|
162
|
+
*
|
|
163
|
+
* Kept apart from the status above because the two answer different questions,
|
|
164
|
+
* and collapsing them is how somebody gets told they are covered on the day
|
|
165
|
+
* they paid: "Registered" means the partner has issued a member id, and
|
|
166
|
+
* "Waiting period" means their cover has not started.
|
|
167
|
+
*/
|
|
168
|
+
exports.PARTNER_MEMBER_STATE_LABELS = {
|
|
169
|
+
[partner_enums_1.PartnerMemberState.PENDING_ACTIVATION]: 'Waiting period',
|
|
170
|
+
[partner_enums_1.PartnerMemberState.ACTIVE]: 'Cover active',
|
|
171
|
+
[partner_enums_1.PartnerMemberState.SUSPENDED]: 'Suspended by partner',
|
|
172
|
+
[partner_enums_1.PartnerMemberState.LAPSED]: 'Ended',
|
|
173
|
+
[partner_enums_1.PartnerMemberState.UNKNOWN]: 'Unknown',
|
|
174
|
+
};
|
|
175
|
+
exports.PARTNER_MEMBERSHIP_SUBJECT_TYPE_LABELS = {
|
|
176
|
+
[partner_enums_1.PartnerMembershipSubjectType.INDIVIDUAL_SUBSCRIBER]: 'Individual subscriber',
|
|
177
|
+
[partner_enums_1.PartnerMembershipSubjectType.CORPORATE_MEMBER]: 'Corporate member',
|
|
178
|
+
};
|
|
179
|
+
exports.PARTNER_MEMBERSHIP_PACKAGE_SCOPE_LABELS = {
|
|
180
|
+
[partner_enums_1.PartnerMembershipPackageScope.ALL]: 'Every package',
|
|
181
|
+
[partner_enums_1.PartnerMembershipPackageScope.SELECTED]: 'Selected packages only',
|
|
182
|
+
};
|
|
183
|
+
exports.PARTNER_MEMBER_GENDER_LABELS = {
|
|
184
|
+
[partner_enums_1.PartnerMemberGender.MALE]: 'Male',
|
|
185
|
+
[partner_enums_1.PartnerMemberGender.FEMALE]: 'Female',
|
|
186
|
+
[partner_enums_1.PartnerMemberGender.OTHER]: 'Other',
|
|
187
|
+
[partner_enums_1.PartnerMemberGender.UNSPECIFIED]: 'Prefer not to say',
|
|
188
|
+
};
|
|
189
|
+
exports.PARTNER_MEMBER_DOCUMENT_TYPE_LABELS = {
|
|
190
|
+
[partner_enums_1.PartnerMemberDocumentType.PASSPORT]: 'Passport',
|
|
191
|
+
[partner_enums_1.PartnerMemberDocumentType.NATIONAL_ID]: 'National ID',
|
|
192
|
+
[partner_enums_1.PartnerMemberDocumentType.DRIVING_LICENCE]: 'Driving licence',
|
|
193
|
+
[partner_enums_1.PartnerMemberDocumentType.OTHER]: 'Other document',
|
|
194
|
+
};
|
|
195
|
+
/** The provider-neutral profile fields, named for a person to read. */
|
|
196
|
+
exports.PARTNER_MEMBER_PROFILE_FIELD_LABELS = {
|
|
197
|
+
[partner_enums_1.PartnerMemberProfileField.FULL_NAME]: 'Full name',
|
|
198
|
+
[partner_enums_1.PartnerMemberProfileField.PHONE_NUMBER]: 'Telephone number',
|
|
199
|
+
[partner_enums_1.PartnerMemberProfileField.EMAIL]: 'Email address',
|
|
200
|
+
[partner_enums_1.PartnerMemberProfileField.DATE_OF_BIRTH]: 'Date of birth',
|
|
201
|
+
[partner_enums_1.PartnerMemberProfileField.GENDER]: 'Gender',
|
|
202
|
+
[partner_enums_1.PartnerMemberProfileField.DOCUMENT_TYPE]: 'Identity document type',
|
|
203
|
+
[partner_enums_1.PartnerMemberProfileField.DOCUMENT_NUMBER]: 'Identity document number',
|
|
204
|
+
[partner_enums_1.PartnerMemberProfileField.DOCUMENT_COUNTRY_CODE]: 'Document country',
|
|
205
|
+
};
|
|
206
|
+
function partnerMembershipStatusTone(status) {
|
|
207
|
+
switch (status) {
|
|
208
|
+
case partner_enums_1.PartnerMembershipStatus.ACTIVE:
|
|
209
|
+
return 'success';
|
|
210
|
+
// Both need a human, and both are the operator's to clear.
|
|
211
|
+
case partner_enums_1.PartnerMembershipStatus.INCOMPLETE_PROFILE:
|
|
212
|
+
case partner_enums_1.PartnerMembershipStatus.NEEDS_REVIEW:
|
|
213
|
+
return 'warn';
|
|
214
|
+
case partner_enums_1.PartnerMembershipStatus.FAILED:
|
|
215
|
+
return 'danger';
|
|
216
|
+
default:
|
|
217
|
+
return 'neutral';
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* One line saying what a membership is waiting on, or null when nothing is.
|
|
222
|
+
*
|
|
223
|
+
* The whole point of the membership screen. An operator should never have to
|
|
224
|
+
* open a record to find out whether it needs them, and should never be shown a
|
|
225
|
+
* partner's raw error where a plain sentence would do.
|
|
226
|
+
*/
|
|
227
|
+
function describeMembershipAttention(membership) {
|
|
228
|
+
var _a, _b;
|
|
229
|
+
switch (membership.status) {
|
|
230
|
+
case partner_enums_1.PartnerMembershipStatus.INCOMPLETE_PROFILE: {
|
|
231
|
+
const fields = (_a = membership.unsatisfiedFields) !== null && _a !== void 0 ? _a : [];
|
|
232
|
+
if (fields.length === 0)
|
|
233
|
+
return 'Some details are still needed.';
|
|
234
|
+
const described = fields.map((entry) => {
|
|
235
|
+
var _a;
|
|
236
|
+
const label = (_a = exports.PARTNER_MEMBER_PROFILE_FIELD_LABELS[entry.field]) !== null && _a !== void 0 ? _a : entry.field;
|
|
237
|
+
// "Missing" and "not usable" are different jobs: one is
|
|
238
|
+
// collecting a fact, the other correcting one.
|
|
239
|
+
return entry.reason === 'MALFORMED'
|
|
240
|
+
? `${label} is not usable`
|
|
241
|
+
: `${label} is missing`;
|
|
242
|
+
});
|
|
243
|
+
return `Cannot register yet: ${described.join(', ')}.`;
|
|
244
|
+
}
|
|
245
|
+
case partner_enums_1.PartnerMembershipStatus.NEEDS_REVIEW:
|
|
246
|
+
return ('A registration may already have reached the partner. Check with them before ' +
|
|
247
|
+
'trying again, otherwise this person could be registered twice.');
|
|
248
|
+
case partner_enums_1.PartnerMembershipStatus.FAILED:
|
|
249
|
+
return (_b = membership.lastErrorMessage) !== null && _b !== void 0 ? _b : 'The partner refused this registration.';
|
|
250
|
+
default:
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* What the partner's cover actually says, in a sentence.
|
|
256
|
+
*
|
|
257
|
+
* Separate from the status chip because "registered" and "covered" are
|
|
258
|
+
* different facts, and a partner that starts a member on a waiting period would
|
|
259
|
+
* otherwise be reported as though cover began the day they paid.
|
|
260
|
+
*/
|
|
261
|
+
function describeMembershipCover(membership) {
|
|
262
|
+
if (membership.status !== partner_enums_1.PartnerMembershipStatus.ACTIVE)
|
|
263
|
+
return null;
|
|
264
|
+
if (membership.coverActive)
|
|
265
|
+
return 'Cover is active with the partner.';
|
|
266
|
+
if (membership.memberState === partner_enums_1.PartnerMemberState.PENDING_ACTIVATION) {
|
|
267
|
+
return membership.coverageStartsAt
|
|
268
|
+
? `Registered — partner cover starts ${formatCoverDate(membership.coverageStartsAt)}.`
|
|
269
|
+
: 'Registered — the partner has not started cover yet.';
|
|
270
|
+
}
|
|
271
|
+
if (membership.memberState === partner_enums_1.PartnerMemberState.LAPSED) {
|
|
272
|
+
return 'The partner has ended this membership.';
|
|
273
|
+
}
|
|
274
|
+
if (membership.memberState === partner_enums_1.PartnerMemberState.SUSPENDED) {
|
|
275
|
+
return 'The partner has suspended this membership.';
|
|
276
|
+
}
|
|
277
|
+
return 'Registered with the partner.';
|
|
278
|
+
}
|
|
279
|
+
/** A date a person can read, falling back to the raw value rather than blanking it. */
|
|
280
|
+
function formatCoverDate(value) {
|
|
281
|
+
const parsed = new Date(value);
|
|
282
|
+
if (Number.isNaN(parsed.getTime()))
|
|
283
|
+
return value;
|
|
284
|
+
return parsed.toLocaleDateString(undefined, {
|
|
285
|
+
day: 'numeric',
|
|
286
|
+
month: 'short',
|
|
287
|
+
year: 'numeric',
|
|
288
|
+
});
|
|
289
|
+
}
|
|
140
290
|
//# sourceMappingURL=partner-display.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partner-display.util.js","sourceRoot":"","sources":["../../../../../src/modules/partner/utils/partner-display.util.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"partner-display.util.js","sourceRoot":"","sources":["../../../../../src/modules/partner/utils/partner-display.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,19 @@ var PermissionActions;
|
|
|
13
13
|
PermissionActions["READ_PARTNER"] = "read:partner";
|
|
14
14
|
PermissionActions["UPDATE_PARTNER"] = "update:partner";
|
|
15
15
|
PermissionActions["DELETE_PARTNER"] = "delete:partner";
|
|
16
|
+
// Acting on one routed emergency. These existed on the backend and were
|
|
17
|
+
// never mirrored here, so the admin could not gate on them at all.
|
|
18
|
+
PermissionActions["READ_PARTNER_DISPATCH"] = "read:partner-dispatch";
|
|
19
|
+
PermissionActions["APPROVE_PARTNER_DISPATCH"] = "approve:partner-dispatch";
|
|
20
|
+
PermissionActions["UPDATE_PARTNER_DISPATCH"] = "update:partner-dispatch";
|
|
21
|
+
PermissionActions["CANCEL_PARTNER_DISPATCH"] = "cancel:partner-dispatch";
|
|
22
|
+
PermissionActions["RESEND_PARTNER_DISPATCH"] = "resend:partner-dispatch";
|
|
23
|
+
// Registering a subscriber with a partner. Kept apart from the partnership
|
|
24
|
+
// CRUD actions because a membership record carries a person's date of birth
|
|
25
|
+
// and identity document, which is a materially different thing to be
|
|
26
|
+
// allowed to read than a base URL and a coverage rule.
|
|
27
|
+
PermissionActions["READ_PARTNER_MEMBERSHIP"] = "read:partner-membership";
|
|
28
|
+
PermissionActions["MANAGE_PARTNER_MEMBERSHIP"] = "manage:partner-membership";
|
|
16
29
|
// Module: ControlCentre
|
|
17
30
|
PermissionActions["CREATE_CONTROL_CENTRE"] = "create:control-centre";
|
|
18
31
|
PermissionActions["READ_CONTROL_CENTRE"] = "read:control-centre";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBA2DX;AA3DD,WAAY,iBAAiB;IACzB,uBAAuB;IACvB,gEAA2C,CAAA;IAC3C,4DAAuC,CAAA;IACvC,gEAA2C,CAAA;IAC3C,gEAA2C,CAAA;IAE3C,kBAAkB;IAClB,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAC7B,sDAAiC,CAAA;IACjC,sDAAiC,CAAA;IACjC,wEAAwE;IACxE,mEAAmE;IACnE,oEAA+C,CAAA;IAC/C,0EAAqD,CAAA;IACrD,wEAAmD,CAAA;IACnD,wEAAmD,CAAA;IACnD,wEAAmD,CAAA;IACnD,2EAA2E;IAC3E,4EAA4E;IAC5E,qEAAqE;IACrE,uDAAuD;IACvD,wEAAmD,CAAA;IACnD,4EAAuD,CAAA;IAEvD,wBAAwB;IACxB,oEAA+C,CAAA;IAC/C,gEAA2C,CAAA;IAC3C,oEAA+C,CAAA;IAC/C,oEAA+C,CAAA;IAE/C,eAAe;IACf,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAE3B,eAAe;IACf,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAE3B,mBAAmB;IACnB,wDAAmC,CAAA;IACnC,oDAA+B,CAAA;IAC/B,wDAAmC,CAAA;IACnC,wDAAmC,CAAA;IACnC,oFAA+D,CAAA;IAC/D,gFAA2D,CAAA;IAC3D,oFAA+D,CAAA;IAC/D,oFAA+D,CAAA;IAE/D,uBAAuB;IACvB,kEAA6C,CAAA;IAC7C,8DAAyC,CAAA;IACzC,kEAA6C,CAAA;IAC7C,kEAA6C,CAAA;AACjD,CAAC,EA3DW,iBAAiB,iCAAjB,iBAAiB,QA2D5B"}
|
|
@@ -165,4 +165,98 @@ export var PartnerDispatchScope;
|
|
|
165
165
|
PartnerDispatchScope["FAILED"] = "FAILED";
|
|
166
166
|
PartnerDispatchScope["NOT_ROUTED"] = "NOT_ROUTED";
|
|
167
167
|
})(PartnerDispatchScope || (PartnerDispatchScope = {}));
|
|
168
|
+
// --- memberships ---------------------------------------------------------
|
|
169
|
+
/**
|
|
170
|
+
* Where one subscriber's registration with one partner has got to.
|
|
171
|
+
*
|
|
172
|
+
* A membership is an ENRICHMENT and never a gate: nothing in this lifecycle can
|
|
173
|
+
* stop an emergency reaching a partner. A subscriber whose membership is
|
|
174
|
+
* INCOMPLETE_PROFILE or FAILED still has an SOS raised for them, just without a
|
|
175
|
+
* member id attached.
|
|
176
|
+
*/
|
|
177
|
+
export var PartnerMembershipStatus;
|
|
178
|
+
(function (PartnerMembershipStatus) {
|
|
179
|
+
/** Decided that this person needs registering; not yet created at the partner. */
|
|
180
|
+
PartnerMembershipStatus["PENDING"] = "PENDING";
|
|
181
|
+
/** Blocked on personal details the partner requires and the platform lacks. */
|
|
182
|
+
PartnerMembershipStatus["INCOMPLETE_PROFILE"] = "INCOMPLETE_PROFILE";
|
|
183
|
+
/** A registration call is in flight at the partner. */
|
|
184
|
+
PartnerMembershipStatus["PROVISIONING"] = "PROVISIONING";
|
|
185
|
+
/** The partner has issued a member id. */
|
|
186
|
+
PartnerMembershipStatus["ACTIVE"] = "ACTIVE";
|
|
187
|
+
/** Every attempt failed for a reason retrying cannot fix. */
|
|
188
|
+
PartnerMembershipStatus["FAILED"] = "FAILED";
|
|
189
|
+
/**
|
|
190
|
+
* A registration was made and its outcome is UNKNOWN - the reply was lost.
|
|
191
|
+
* Deliberately a dead end: retrying a call that may have succeeded is how
|
|
192
|
+
* one person acquires two memberships, and a duplicate cannot be undone at
|
|
193
|
+
* the partner.
|
|
194
|
+
*/
|
|
195
|
+
PartnerMembershipStatus["NEEDS_REVIEW"] = "NEEDS_REVIEW";
|
|
196
|
+
/** The subscription behind it ended. The member is left in place at the partner. */
|
|
197
|
+
PartnerMembershipStatus["CANCELLED"] = "CANCELLED";
|
|
198
|
+
})(PartnerMembershipStatus || (PartnerMembershipStatus = {}));
|
|
199
|
+
/** Who a membership belongs to, in Clarion's own vocabulary. */
|
|
200
|
+
export var PartnerMembershipSubjectType;
|
|
201
|
+
(function (PartnerMembershipSubjectType) {
|
|
202
|
+
PartnerMembershipSubjectType["INDIVIDUAL_SUBSCRIBER"] = "INDIVIDUAL_SUBSCRIBER";
|
|
203
|
+
PartnerMembershipSubjectType["CORPORATE_MEMBER"] = "CORPORATE_MEMBER";
|
|
204
|
+
})(PartnerMembershipSubjectType || (PartnerMembershipSubjectType = {}));
|
|
205
|
+
/**
|
|
206
|
+
* A member's standing with the partner, reduced to something every screen can
|
|
207
|
+
* rely on without learning any partner's vocabulary.
|
|
208
|
+
*
|
|
209
|
+
* PENDING_ACTIVATION is the one that matters: a member can exist, hold a real
|
|
210
|
+
* member id, and still not be covered - Rescue.co returns a brand-new member as
|
|
211
|
+
* `waitingPeriod`. A screen that collapses the two tells a subscriber they are
|
|
212
|
+
* covered on the day they paid.
|
|
213
|
+
*/
|
|
214
|
+
export var PartnerMemberState;
|
|
215
|
+
(function (PartnerMemberState) {
|
|
216
|
+
PartnerMemberState["PENDING_ACTIVATION"] = "PENDING_ACTIVATION";
|
|
217
|
+
PartnerMemberState["ACTIVE"] = "ACTIVE";
|
|
218
|
+
PartnerMemberState["SUSPENDED"] = "SUSPENDED";
|
|
219
|
+
PartnerMemberState["LAPSED"] = "LAPSED";
|
|
220
|
+
PartnerMemberState["UNKNOWN"] = "UNKNOWN";
|
|
221
|
+
})(PartnerMemberState || (PartnerMemberState = {}));
|
|
222
|
+
/** Which packages' subscribers a partnership registers. */
|
|
223
|
+
export var PartnerMembershipPackageScope;
|
|
224
|
+
(function (PartnerMembershipPackageScope) {
|
|
225
|
+
PartnerMembershipPackageScope["ALL"] = "ALL";
|
|
226
|
+
PartnerMembershipPackageScope["SELECTED"] = "SELECTED";
|
|
227
|
+
})(PartnerMembershipPackageScope || (PartnerMembershipPackageScope = {}));
|
|
228
|
+
/** Gender, in the platform's neutral vocabulary - never a partner's spelling. */
|
|
229
|
+
export var PartnerMemberGender;
|
|
230
|
+
(function (PartnerMemberGender) {
|
|
231
|
+
PartnerMemberGender["MALE"] = "MALE";
|
|
232
|
+
PartnerMemberGender["FEMALE"] = "FEMALE";
|
|
233
|
+
PartnerMemberGender["OTHER"] = "OTHER";
|
|
234
|
+
PartnerMemberGender["UNSPECIFIED"] = "UNSPECIFIED";
|
|
235
|
+
})(PartnerMemberGender || (PartnerMemberGender = {}));
|
|
236
|
+
/** The kind of identity document a partner membership records. */
|
|
237
|
+
export var PartnerMemberDocumentType;
|
|
238
|
+
(function (PartnerMemberDocumentType) {
|
|
239
|
+
PartnerMemberDocumentType["PASSPORT"] = "PASSPORT";
|
|
240
|
+
PartnerMemberDocumentType["NATIONAL_ID"] = "NATIONAL_ID";
|
|
241
|
+
PartnerMemberDocumentType["DRIVING_LICENCE"] = "DRIVING_LICENCE";
|
|
242
|
+
PartnerMemberDocumentType["OTHER"] = "OTHER";
|
|
243
|
+
})(PartnerMemberDocumentType || (PartnerMemberDocumentType = {}));
|
|
244
|
+
/**
|
|
245
|
+
* The provider-neutral facts about a person a partner membership may need.
|
|
246
|
+
*
|
|
247
|
+
* The VALUES are the property names on `PartnerMemberProfileDto`, which is what
|
|
248
|
+
* lets "which of this partner's required fields are missing?" be a generic loop
|
|
249
|
+
* in the admin rather than a per-partner if-ladder.
|
|
250
|
+
*/
|
|
251
|
+
export var PartnerMemberProfileField;
|
|
252
|
+
(function (PartnerMemberProfileField) {
|
|
253
|
+
PartnerMemberProfileField["FULL_NAME"] = "fullName";
|
|
254
|
+
PartnerMemberProfileField["PHONE_NUMBER"] = "phoneNumber";
|
|
255
|
+
PartnerMemberProfileField["EMAIL"] = "email";
|
|
256
|
+
PartnerMemberProfileField["DATE_OF_BIRTH"] = "dateOfBirth";
|
|
257
|
+
PartnerMemberProfileField["GENDER"] = "gender";
|
|
258
|
+
PartnerMemberProfileField["DOCUMENT_TYPE"] = "documentType";
|
|
259
|
+
PartnerMemberProfileField["DOCUMENT_NUMBER"] = "documentNumber";
|
|
260
|
+
PartnerMemberProfileField["DOCUMENT_COUNTRY_CODE"] = "documentCountryCode";
|
|
261
|
+
})(PartnerMemberProfileField || (PartnerMemberProfileField = {}));
|
|
168
262
|
//# sourceMappingURL=partner-enums.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partner-enums.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-enums.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"partner-enums.js","sourceRoot":"","sources":["../../../../../src/modules/partner/enums/partner-enums.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export * from './interfaces/partner-coverage-rule.dto';
|
|
|
7
7
|
export * from './interfaces/partner-dispatch-progress.dto';
|
|
8
8
|
export * from './interfaces/partner-dispatch.dto';
|
|
9
9
|
export * from './interfaces/incident-partner-routing.dto';
|
|
10
|
+
export * from './interfaces/partner-membership.dto';
|
|
10
11
|
// Utilities
|
|
11
12
|
export * from './utils/partner-display.util';
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/partner/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,uBAAuB,CAAC;AAEtC,oBAAoB;AACpB,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/partner/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,uBAAuB,CAAC;AAEtC,oBAAoB;AACpB,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AAEpD,YAAY;AACZ,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner-membership.dto.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-membership.dto.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
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
2
|
/**
|
|
3
3
|
* Human labels for the partner enums.
|
|
4
4
|
*
|
|
@@ -131,4 +131,151 @@ export function partnerDispatchActions(status, capabilities = {}) {
|
|
|
131
131
|
status === PartnerDispatchStatus.EXPIRED,
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
|
+
// --- memberships ---------------------------------------------------------
|
|
135
|
+
/**
|
|
136
|
+
* How a membership's own lifecycle reads on screen.
|
|
137
|
+
*
|
|
138
|
+
* Worded as what an operator should DO, not as an internal state name. Nobody
|
|
139
|
+
* has to know what PROVISIONING means; they have to know whether somebody is
|
|
140
|
+
* waiting on them.
|
|
141
|
+
*/
|
|
142
|
+
export const PARTNER_MEMBERSHIP_STATUS_LABELS = {
|
|
143
|
+
[PartnerMembershipStatus.PENDING]: 'Waiting to register',
|
|
144
|
+
[PartnerMembershipStatus.INCOMPLETE_PROFILE]: 'Details needed',
|
|
145
|
+
[PartnerMembershipStatus.PROVISIONING]: 'Registering',
|
|
146
|
+
[PartnerMembershipStatus.ACTIVE]: 'Registered',
|
|
147
|
+
[PartnerMembershipStatus.FAILED]: 'Registration failed',
|
|
148
|
+
[PartnerMembershipStatus.NEEDS_REVIEW]: 'Check with partner',
|
|
149
|
+
[PartnerMembershipStatus.CANCELLED]: 'No longer covered',
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* How the PARTNER's own view of a member reads.
|
|
153
|
+
*
|
|
154
|
+
* Kept apart from the status above because the two answer different questions,
|
|
155
|
+
* and collapsing them is how somebody gets told they are covered on the day
|
|
156
|
+
* they paid: "Registered" means the partner has issued a member id, and
|
|
157
|
+
* "Waiting period" means their cover has not started.
|
|
158
|
+
*/
|
|
159
|
+
export const PARTNER_MEMBER_STATE_LABELS = {
|
|
160
|
+
[PartnerMemberState.PENDING_ACTIVATION]: 'Waiting period',
|
|
161
|
+
[PartnerMemberState.ACTIVE]: 'Cover active',
|
|
162
|
+
[PartnerMemberState.SUSPENDED]: 'Suspended by partner',
|
|
163
|
+
[PartnerMemberState.LAPSED]: 'Ended',
|
|
164
|
+
[PartnerMemberState.UNKNOWN]: 'Unknown',
|
|
165
|
+
};
|
|
166
|
+
export const PARTNER_MEMBERSHIP_SUBJECT_TYPE_LABELS = {
|
|
167
|
+
[PartnerMembershipSubjectType.INDIVIDUAL_SUBSCRIBER]: 'Individual subscriber',
|
|
168
|
+
[PartnerMembershipSubjectType.CORPORATE_MEMBER]: 'Corporate member',
|
|
169
|
+
};
|
|
170
|
+
export const PARTNER_MEMBERSHIP_PACKAGE_SCOPE_LABELS = {
|
|
171
|
+
[PartnerMembershipPackageScope.ALL]: 'Every package',
|
|
172
|
+
[PartnerMembershipPackageScope.SELECTED]: 'Selected packages only',
|
|
173
|
+
};
|
|
174
|
+
export const PARTNER_MEMBER_GENDER_LABELS = {
|
|
175
|
+
[PartnerMemberGender.MALE]: 'Male',
|
|
176
|
+
[PartnerMemberGender.FEMALE]: 'Female',
|
|
177
|
+
[PartnerMemberGender.OTHER]: 'Other',
|
|
178
|
+
[PartnerMemberGender.UNSPECIFIED]: 'Prefer not to say',
|
|
179
|
+
};
|
|
180
|
+
export const PARTNER_MEMBER_DOCUMENT_TYPE_LABELS = {
|
|
181
|
+
[PartnerMemberDocumentType.PASSPORT]: 'Passport',
|
|
182
|
+
[PartnerMemberDocumentType.NATIONAL_ID]: 'National ID',
|
|
183
|
+
[PartnerMemberDocumentType.DRIVING_LICENCE]: 'Driving licence',
|
|
184
|
+
[PartnerMemberDocumentType.OTHER]: 'Other document',
|
|
185
|
+
};
|
|
186
|
+
/** The provider-neutral profile fields, named for a person to read. */
|
|
187
|
+
export const PARTNER_MEMBER_PROFILE_FIELD_LABELS = {
|
|
188
|
+
[PartnerMemberProfileField.FULL_NAME]: 'Full name',
|
|
189
|
+
[PartnerMemberProfileField.PHONE_NUMBER]: 'Telephone number',
|
|
190
|
+
[PartnerMemberProfileField.EMAIL]: 'Email address',
|
|
191
|
+
[PartnerMemberProfileField.DATE_OF_BIRTH]: 'Date of birth',
|
|
192
|
+
[PartnerMemberProfileField.GENDER]: 'Gender',
|
|
193
|
+
[PartnerMemberProfileField.DOCUMENT_TYPE]: 'Identity document type',
|
|
194
|
+
[PartnerMemberProfileField.DOCUMENT_NUMBER]: 'Identity document number',
|
|
195
|
+
[PartnerMemberProfileField.DOCUMENT_COUNTRY_CODE]: 'Document country',
|
|
196
|
+
};
|
|
197
|
+
export function partnerMembershipStatusTone(status) {
|
|
198
|
+
switch (status) {
|
|
199
|
+
case PartnerMembershipStatus.ACTIVE:
|
|
200
|
+
return 'success';
|
|
201
|
+
// Both need a human, and both are the operator's to clear.
|
|
202
|
+
case PartnerMembershipStatus.INCOMPLETE_PROFILE:
|
|
203
|
+
case PartnerMembershipStatus.NEEDS_REVIEW:
|
|
204
|
+
return 'warn';
|
|
205
|
+
case PartnerMembershipStatus.FAILED:
|
|
206
|
+
return 'danger';
|
|
207
|
+
default:
|
|
208
|
+
return 'neutral';
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* One line saying what a membership is waiting on, or null when nothing is.
|
|
213
|
+
*
|
|
214
|
+
* The whole point of the membership screen. An operator should never have to
|
|
215
|
+
* open a record to find out whether it needs them, and should never be shown a
|
|
216
|
+
* partner's raw error where a plain sentence would do.
|
|
217
|
+
*/
|
|
218
|
+
export function describeMembershipAttention(membership) {
|
|
219
|
+
var _a, _b;
|
|
220
|
+
switch (membership.status) {
|
|
221
|
+
case PartnerMembershipStatus.INCOMPLETE_PROFILE: {
|
|
222
|
+
const fields = (_a = membership.unsatisfiedFields) !== null && _a !== void 0 ? _a : [];
|
|
223
|
+
if (fields.length === 0)
|
|
224
|
+
return 'Some details are still needed.';
|
|
225
|
+
const described = fields.map((entry) => {
|
|
226
|
+
var _a;
|
|
227
|
+
const label = (_a = PARTNER_MEMBER_PROFILE_FIELD_LABELS[entry.field]) !== null && _a !== void 0 ? _a : entry.field;
|
|
228
|
+
// "Missing" and "not usable" are different jobs: one is
|
|
229
|
+
// collecting a fact, the other correcting one.
|
|
230
|
+
return entry.reason === 'MALFORMED'
|
|
231
|
+
? `${label} is not usable`
|
|
232
|
+
: `${label} is missing`;
|
|
233
|
+
});
|
|
234
|
+
return `Cannot register yet: ${described.join(', ')}.`;
|
|
235
|
+
}
|
|
236
|
+
case PartnerMembershipStatus.NEEDS_REVIEW:
|
|
237
|
+
return ('A registration may already have reached the partner. Check with them before ' +
|
|
238
|
+
'trying again, otherwise this person could be registered twice.');
|
|
239
|
+
case PartnerMembershipStatus.FAILED:
|
|
240
|
+
return (_b = membership.lastErrorMessage) !== null && _b !== void 0 ? _b : 'The partner refused this registration.';
|
|
241
|
+
default:
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* What the partner's cover actually says, in a sentence.
|
|
247
|
+
*
|
|
248
|
+
* Separate from the status chip because "registered" and "covered" are
|
|
249
|
+
* different facts, and a partner that starts a member on a waiting period would
|
|
250
|
+
* otherwise be reported as though cover began the day they paid.
|
|
251
|
+
*/
|
|
252
|
+
export function describeMembershipCover(membership) {
|
|
253
|
+
if (membership.status !== PartnerMembershipStatus.ACTIVE)
|
|
254
|
+
return null;
|
|
255
|
+
if (membership.coverActive)
|
|
256
|
+
return 'Cover is active with the partner.';
|
|
257
|
+
if (membership.memberState === PartnerMemberState.PENDING_ACTIVATION) {
|
|
258
|
+
return membership.coverageStartsAt
|
|
259
|
+
? `Registered — partner cover starts ${formatCoverDate(membership.coverageStartsAt)}.`
|
|
260
|
+
: 'Registered — the partner has not started cover yet.';
|
|
261
|
+
}
|
|
262
|
+
if (membership.memberState === PartnerMemberState.LAPSED) {
|
|
263
|
+
return 'The partner has ended this membership.';
|
|
264
|
+
}
|
|
265
|
+
if (membership.memberState === PartnerMemberState.SUSPENDED) {
|
|
266
|
+
return 'The partner has suspended this membership.';
|
|
267
|
+
}
|
|
268
|
+
return 'Registered with the partner.';
|
|
269
|
+
}
|
|
270
|
+
/** A date a person can read, falling back to the raw value rather than blanking it. */
|
|
271
|
+
function formatCoverDate(value) {
|
|
272
|
+
const parsed = new Date(value);
|
|
273
|
+
if (Number.isNaN(parsed.getTime()))
|
|
274
|
+
return value;
|
|
275
|
+
return parsed.toLocaleDateString(undefined, {
|
|
276
|
+
day: 'numeric',
|
|
277
|
+
month: 'short',
|
|
278
|
+
year: 'numeric',
|
|
279
|
+
});
|
|
280
|
+
}
|
|
134
281
|
//# sourceMappingURL=partner-display.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partner-display.util.js","sourceRoot":"","sources":["../../../../../src/modules/partner/utils/partner-display.util.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,GAC3B,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"partner-display.util.js","sourceRoot":"","sources":["../../../../../src/modules/partner/utils/partner-display.util.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,6BAA6B,EAC7B,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,EAClB,wBAAwB,GAC3B,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAoD;IAC3F,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,0BAA0B;IACpE,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,QAAQ;IACxC,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,SAAS;IAC1C,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,iBAAiB;IAC/C,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,oBAAoB;IAC1D,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,mBAAmB;IACtD,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,QAAQ;IACxC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,UAAU;IAC5C,sEAAsE;IACtE,4EAA4E;IAC5E,2BAA2B;IAC3B,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,0BAA0B;IAC7D,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,YAAY;IAC/C,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,SAAS;CAC7C,CAAC;AAEF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,+BAA+B,GAExC;IACA,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,aAAa;IAC9C,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,QAAQ;IACzC,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,SAAS;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAE/C;IACA,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,YAAY;IACvD,CAAC,4BAA4B,CAAC,OAAO,CAAC,EAAE,oBAAoB;IAC5D,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,EAAE,0BAA0B;IAC5E,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE,kBAAkB;IACzD,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,EAAE,iBAAiB;IAClE,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE,qBAAqB;IAC5D,CAAC,4BAA4B,CAAC,QAAQ,CAAC,EAAE,UAAU;CACtD,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAiD;IACrF,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,WAAW;IACtC,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,oBAAoB;IACjD,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,aAAa;CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAE1C;IACA,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,YAAY;IAChD,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,SAAS;IAC7C,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,UAAU;IAC/C,CAAC,wBAAwB,CAAC,WAAW,CAAC,EAAE,aAAa;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAuD;IACzF,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,WAAW;IACjD,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,EAAE,oBAAoB;IACnE,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,eAAe;IACzD,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,EAAE,mBAAmB;IACjE,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,EAAE,qBAAqB;IACrE,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC3C,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO;CAC5C,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAE3C;IACA,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,gBAAgB;IAChD,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,eAAe;IACzD,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,EAAE,mBAAmB;IACjE,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,0BAA0B;CACxE,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACrC,MAA6B;IAE7B,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,qBAAqB,CAAC,IAAI,CAAC;QAChC,KAAK,qBAAqB,CAAC,YAAY,CAAC;QACxC,KAAK,qBAAqB,CAAC,SAAS;YAChC,OAAO,SAAS,CAAC;QACrB,KAAK,qBAAqB,CAAC,gBAAgB,CAAC;QAC5C,KAAK,qBAAqB,CAAC,MAAM,CAAC;QAClC,KAAK,qBAAqB,CAAC,OAAO;YAC9B,OAAO,MAAM,CAAC;QAClB,KAAK,qBAAqB,CAAC,MAAM,CAAC;QAClC,KAAK,qBAAqB,CAAC,OAAO;YAC9B,OAAO,QAAQ,CAAC;QACpB;YACI,OAAO,SAAS,CAAC;IACzB,CAAC;AACL,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,0BAA0B,CACtC,MAAoC;IAEpC,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,4BAA4B,CAAC,MAAM;YACpC,OAAO,SAAS,CAAC;QACrB,KAAK,4BAA4B,CAAC,OAAO,CAAC;QAC1C,KAAK,4BAA4B,CAAC,iBAAiB,CAAC;QACpD,KAAK,4BAA4B,CAAC,gBAAgB;YAC9C,OAAO,MAAM,CAAC;QAClB,KAAK,4BAA4B,CAAC,MAAM;YACpC,OAAO,QAAQ,CAAC;QACpB;YACI,OAAO,SAAS,CAAC;IACzB,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAClC,MAA6B,EAC7B,eAA0C,EAAE;IAS5C,MAAM,OAAO,GAAG,MAAM,KAAK,qBAAqB,CAAC,gBAAgB,CAAC;IAClE,MAAM,WAAW,GACb,MAAM,KAAK,qBAAqB,CAAC,IAAI;QACrC,MAAM,KAAK,qBAAqB,CAAC,YAAY,CAAC;IAElD,OAAO;QACH,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,OAAO;QAClB,gEAAgE;QAChE,SAAS,EAAE,OAAO,IAAI,MAAM,KAAK,qBAAqB,CAAC,MAAM;QAC7D;;;;;WAKG;QACH,YAAY,EAAE,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC,kBAAkB;QAC9D,QAAQ,EAAE,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC,iBAAiB;QACzD,SAAS,EACL,MAAM,KAAK,qBAAqB,CAAC,MAAM;YACvC,MAAM,KAAK,qBAAqB,CAAC,OAAO;KAC/C,CAAC;AACN,CAAC;AAWD,4EAA4E;AAE5E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAEzC;IACA,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,qBAAqB;IACxD,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,EAAE,gBAAgB;IAC9D,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,aAAa;IACrD,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,YAAY;IAC9C,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,qBAAqB;IACvD,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,oBAAoB;IAC5D,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAE,mBAAmB;CAC3D,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAiD;IACrF,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,gBAAgB;IACzD,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,cAAc;IAC3C,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,sBAAsB;IACtD,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO;IACpC,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,SAAS;CAC1C,CAAC;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAE/C;IACA,CAAC,4BAA4B,CAAC,qBAAqB,CAAC,EAAE,uBAAuB;IAC7E,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;CACtE,CAAC;AAEF,MAAM,CAAC,MAAM,uCAAuC,GAEhD;IACA,CAAC,6BAA6B,CAAC,GAAG,CAAC,EAAE,eAAe;IACpD,CAAC,6BAA6B,CAAC,QAAQ,CAAC,EAAE,wBAAwB;CACrE,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAkD;IACvF,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,QAAQ;IACtC,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,OAAO;IACpC,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,mBAAmB;CACzD,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAE5C;IACA,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,UAAU;IAChD,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,aAAa;IACtD,CAAC,yBAAyB,CAAC,eAAe,CAAC,EAAE,iBAAiB;IAC9D,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,gBAAgB;CACtD,CAAC;AAEF,uEAAuE;AACvE,MAAM,CAAC,MAAM,mCAAmC,GAE5C;IACA,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE,WAAW;IAClD,CAAC,yBAAyB,CAAC,YAAY,CAAC,EAAE,kBAAkB;IAC5D,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,eAAe;IAClD,CAAC,yBAAyB,CAAC,aAAa,CAAC,EAAE,eAAe;IAC1D,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC5C,CAAC,yBAAyB,CAAC,aAAa,CAAC,EAAE,wBAAwB;IACnE,CAAC,yBAAyB,CAAC,eAAe,CAAC,EAAE,0BAA0B;IACvE,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,EAAE,kBAAkB;CACxE,CAAC;AAEF,MAAM,UAAU,2BAA2B,CACvC,MAA+B;IAE/B,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,uBAAuB,CAAC,MAAM;YAC/B,OAAO,SAAS,CAAC;QACrB,2DAA2D;QAC3D,KAAK,uBAAuB,CAAC,kBAAkB,CAAC;QAChD,KAAK,uBAAuB,CAAC,YAAY;YACrC,OAAO,MAAM,CAAC;QAClB,KAAK,uBAAuB,CAAC,MAAM;YAC/B,OAAO,QAAQ,CAAC;QACpB;YACI,OAAO,SAAS,CAAC;IACzB,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,UAI3C;;IACG,QAAQ,UAAU,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAA,UAAU,CAAC,iBAAiB,mCAAI,EAAE,CAAC;YAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,gCAAgC,CAAC;YACjE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;;gBACnC,MAAM,KAAK,GACP,MAAA,mCAAmC,CACnC,KAAK,CAAC,KAAkC,CACvC,mCAAI,KAAK,CAAC,KAAK,CAAC;gBACrB,wDAAwD;gBACxD,+CAA+C;gBAC/C,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW;oBAC/B,CAAC,CAAC,GAAG,KAAK,gBAAgB;oBAC1B,CAAC,CAAC,GAAG,KAAK,aAAa,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,OAAO,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3D,CAAC;QACD,KAAK,uBAAuB,CAAC,YAAY;YACrC,OAAO,CACH,8EAA8E;gBAC9E,gEAAgE,CACnE,CAAC;QACN,KAAK,uBAAuB,CAAC,MAAM;YAC/B,OAAO,MAAA,UAAU,CAAC,gBAAgB,mCAAI,wCAAwC,CAAC;QACnF;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAKvC;IACG,IAAI,UAAU,CAAC,MAAM,KAAK,uBAAuB,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACtE,IAAI,UAAU,CAAC,WAAW;QAAE,OAAO,mCAAmC,CAAC;IACvE,IAAI,UAAU,CAAC,WAAW,KAAK,kBAAkB,CAAC,kBAAkB,EAAE,CAAC;QACnE,OAAO,UAAU,CAAC,gBAAgB;YAC9B,CAAC,CAAC,qCAAqC,eAAe,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG;YACtF,CAAC,CAAC,qDAAqD,CAAC;IAChE,CAAC;IACD,IAAI,UAAU,CAAC,WAAW,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;QACvD,OAAO,wCAAwC,CAAC;IACpD,CAAC;IACD,IAAI,UAAU,CAAC,WAAW,KAAK,kBAAkB,CAAC,SAAS,EAAE,CAAC;QAC1D,OAAO,4CAA4C,CAAC;IACxD,CAAC;IACD,OAAO,8BAA8B,CAAC;AAC1C,CAAC;AAED,uFAAuF;AACvF,SAAS,eAAe,CAAC,KAAa;IAClC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,OAAO,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE;QACxC,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,SAAS;KAClB,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -10,6 +10,19 @@ export var PermissionActions;
|
|
|
10
10
|
PermissionActions["READ_PARTNER"] = "read:partner";
|
|
11
11
|
PermissionActions["UPDATE_PARTNER"] = "update:partner";
|
|
12
12
|
PermissionActions["DELETE_PARTNER"] = "delete:partner";
|
|
13
|
+
// Acting on one routed emergency. These existed on the backend and were
|
|
14
|
+
// never mirrored here, so the admin could not gate on them at all.
|
|
15
|
+
PermissionActions["READ_PARTNER_DISPATCH"] = "read:partner-dispatch";
|
|
16
|
+
PermissionActions["APPROVE_PARTNER_DISPATCH"] = "approve:partner-dispatch";
|
|
17
|
+
PermissionActions["UPDATE_PARTNER_DISPATCH"] = "update:partner-dispatch";
|
|
18
|
+
PermissionActions["CANCEL_PARTNER_DISPATCH"] = "cancel:partner-dispatch";
|
|
19
|
+
PermissionActions["RESEND_PARTNER_DISPATCH"] = "resend:partner-dispatch";
|
|
20
|
+
// Registering a subscriber with a partner. Kept apart from the partnership
|
|
21
|
+
// CRUD actions because a membership record carries a person's date of birth
|
|
22
|
+
// and identity document, which is a materially different thing to be
|
|
23
|
+
// allowed to read than a base URL and a coverage rule.
|
|
24
|
+
PermissionActions["READ_PARTNER_MEMBERSHIP"] = "read:partner-membership";
|
|
25
|
+
PermissionActions["MANAGE_PARTNER_MEMBERSHIP"] = "manage:partner-membership";
|
|
13
26
|
// Module: ControlCentre
|
|
14
27
|
PermissionActions["CREATE_CONTROL_CENTRE"] = "create:control-centre";
|
|
15
28
|
PermissionActions["READ_CONTROL_CENTRE"] = "read:control-centre";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBA2DX;AA3DD,WAAY,iBAAiB;IACzB,uBAAuB;IACvB,gEAA2C,CAAA;IAC3C,4DAAuC,CAAA;IACvC,gEAA2C,CAAA;IAC3C,gEAA2C,CAAA;IAE3C,kBAAkB;IAClB,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAC7B,sDAAiC,CAAA;IACjC,sDAAiC,CAAA;IACjC,wEAAwE;IACxE,mEAAmE;IACnE,oEAA+C,CAAA;IAC/C,0EAAqD,CAAA;IACrD,wEAAmD,CAAA;IACnD,wEAAmD,CAAA;IACnD,wEAAmD,CAAA;IACnD,2EAA2E;IAC3E,4EAA4E;IAC5E,qEAAqE;IACrE,uDAAuD;IACvD,wEAAmD,CAAA;IACnD,4EAAuD,CAAA;IAEvD,wBAAwB;IACxB,oEAA+C,CAAA;IAC/C,gEAA2C,CAAA;IAC3C,oEAA+C,CAAA;IAC/C,oEAA+C,CAAA;IAE/C,eAAe;IACf,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAE3B,eAAe;IACf,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAE3B,mBAAmB;IACnB,wDAAmC,CAAA;IACnC,oDAA+B,CAAA;IAC/B,wDAAmC,CAAA;IACnC,wDAAmC,CAAA;IACnC,oFAA+D,CAAA;IAC/D,gFAA2D,CAAA;IAC3D,oFAA+D,CAAA;IAC/D,oFAA+D,CAAA;IAE/D,uBAAuB;IACvB,kEAA6C,CAAA;IAC7C,8DAAyC,CAAA;IACzC,kEAA6C,CAAA;IAC7C,kEAA6C,CAAA;AACjD,CAAC,EA3DW,iBAAiB,KAAjB,iBAAiB,QA2D5B"}
|
|
@@ -152,3 +152,89 @@ export declare enum PartnerDispatchScope {
|
|
|
152
152
|
FAILED = "FAILED",
|
|
153
153
|
NOT_ROUTED = "NOT_ROUTED"
|
|
154
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Where one subscriber's registration with one partner has got to.
|
|
157
|
+
*
|
|
158
|
+
* A membership is an ENRICHMENT and never a gate: nothing in this lifecycle can
|
|
159
|
+
* stop an emergency reaching a partner. A subscriber whose membership is
|
|
160
|
+
* INCOMPLETE_PROFILE or FAILED still has an SOS raised for them, just without a
|
|
161
|
+
* member id attached.
|
|
162
|
+
*/
|
|
163
|
+
export declare enum PartnerMembershipStatus {
|
|
164
|
+
/** Decided that this person needs registering; not yet created at the partner. */
|
|
165
|
+
PENDING = "PENDING",
|
|
166
|
+
/** Blocked on personal details the partner requires and the platform lacks. */
|
|
167
|
+
INCOMPLETE_PROFILE = "INCOMPLETE_PROFILE",
|
|
168
|
+
/** A registration call is in flight at the partner. */
|
|
169
|
+
PROVISIONING = "PROVISIONING",
|
|
170
|
+
/** The partner has issued a member id. */
|
|
171
|
+
ACTIVE = "ACTIVE",
|
|
172
|
+
/** Every attempt failed for a reason retrying cannot fix. */
|
|
173
|
+
FAILED = "FAILED",
|
|
174
|
+
/**
|
|
175
|
+
* A registration was made and its outcome is UNKNOWN - the reply was lost.
|
|
176
|
+
* Deliberately a dead end: retrying a call that may have succeeded is how
|
|
177
|
+
* one person acquires two memberships, and a duplicate cannot be undone at
|
|
178
|
+
* the partner.
|
|
179
|
+
*/
|
|
180
|
+
NEEDS_REVIEW = "NEEDS_REVIEW",
|
|
181
|
+
/** The subscription behind it ended. The member is left in place at the partner. */
|
|
182
|
+
CANCELLED = "CANCELLED"
|
|
183
|
+
}
|
|
184
|
+
/** Who a membership belongs to, in Clarion's own vocabulary. */
|
|
185
|
+
export declare enum PartnerMembershipSubjectType {
|
|
186
|
+
INDIVIDUAL_SUBSCRIBER = "INDIVIDUAL_SUBSCRIBER",
|
|
187
|
+
CORPORATE_MEMBER = "CORPORATE_MEMBER"
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* A member's standing with the partner, reduced to something every screen can
|
|
191
|
+
* rely on without learning any partner's vocabulary.
|
|
192
|
+
*
|
|
193
|
+
* PENDING_ACTIVATION is the one that matters: a member can exist, hold a real
|
|
194
|
+
* member id, and still not be covered - Rescue.co returns a brand-new member as
|
|
195
|
+
* `waitingPeriod`. A screen that collapses the two tells a subscriber they are
|
|
196
|
+
* covered on the day they paid.
|
|
197
|
+
*/
|
|
198
|
+
export declare enum PartnerMemberState {
|
|
199
|
+
PENDING_ACTIVATION = "PENDING_ACTIVATION",
|
|
200
|
+
ACTIVE = "ACTIVE",
|
|
201
|
+
SUSPENDED = "SUSPENDED",
|
|
202
|
+
LAPSED = "LAPSED",
|
|
203
|
+
UNKNOWN = "UNKNOWN"
|
|
204
|
+
}
|
|
205
|
+
/** Which packages' subscribers a partnership registers. */
|
|
206
|
+
export declare enum PartnerMembershipPackageScope {
|
|
207
|
+
ALL = "ALL",
|
|
208
|
+
SELECTED = "SELECTED"
|
|
209
|
+
}
|
|
210
|
+
/** Gender, in the platform's neutral vocabulary - never a partner's spelling. */
|
|
211
|
+
export declare enum PartnerMemberGender {
|
|
212
|
+
MALE = "MALE",
|
|
213
|
+
FEMALE = "FEMALE",
|
|
214
|
+
OTHER = "OTHER",
|
|
215
|
+
UNSPECIFIED = "UNSPECIFIED"
|
|
216
|
+
}
|
|
217
|
+
/** The kind of identity document a partner membership records. */
|
|
218
|
+
export declare enum PartnerMemberDocumentType {
|
|
219
|
+
PASSPORT = "PASSPORT",
|
|
220
|
+
NATIONAL_ID = "NATIONAL_ID",
|
|
221
|
+
DRIVING_LICENCE = "DRIVING_LICENCE",
|
|
222
|
+
OTHER = "OTHER"
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* The provider-neutral facts about a person a partner membership may need.
|
|
226
|
+
*
|
|
227
|
+
* The VALUES are the property names on `PartnerMemberProfileDto`, which is what
|
|
228
|
+
* lets "which of this partner's required fields are missing?" be a generic loop
|
|
229
|
+
* in the admin rather than a per-partner if-ladder.
|
|
230
|
+
*/
|
|
231
|
+
export declare enum PartnerMemberProfileField {
|
|
232
|
+
FULL_NAME = "fullName",
|
|
233
|
+
PHONE_NUMBER = "phoneNumber",
|
|
234
|
+
EMAIL = "email",
|
|
235
|
+
DATE_OF_BIRTH = "dateOfBirth",
|
|
236
|
+
GENDER = "gender",
|
|
237
|
+
DOCUMENT_TYPE = "documentType",
|
|
238
|
+
DOCUMENT_NUMBER = "documentNumber",
|
|
239
|
+
DOCUMENT_COUNTRY_CODE = "documentCountryCode"
|
|
240
|
+
}
|
|
@@ -5,4 +5,5 @@ export * from './interfaces/partner-coverage-rule.dto';
|
|
|
5
5
|
export * from './interfaces/partner-dispatch-progress.dto';
|
|
6
6
|
export * from './interfaces/partner-dispatch.dto';
|
|
7
7
|
export * from './interfaces/incident-partner-routing.dto';
|
|
8
|
+
export * from './interfaces/partner-membership.dto';
|
|
8
9
|
export * from './utils/partner-display.util';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CountryCode } from '../../country/enums/country-code.enum';
|
|
2
|
-
import { PartnerIntegrationEnvironment, PartnerIntegrationStatus, PartnerProviderCode, PartnerRoutingMode, PartnerServiceCapability } from '../enums/partner-enums';
|
|
2
|
+
import { PartnerIntegrationEnvironment, PartnerIntegrationStatus, PartnerMembershipPackageScope, PartnerProviderCode, PartnerRoutingMode, PartnerServiceCapability } from '../enums/partner-enums';
|
|
3
3
|
import { PartnerCoverageRuleDto } from './partner-coverage-rule.dto';
|
|
4
4
|
/**
|
|
5
5
|
* Frontend view of an organization's partnership with a third-party service
|
|
@@ -24,6 +24,26 @@ export interface PartnerIntegrationDto {
|
|
|
24
24
|
approvalWindowMinutes: number | null;
|
|
25
25
|
enabled: boolean;
|
|
26
26
|
priority: number;
|
|
27
|
+
/**
|
|
28
|
+
* Whether subscribers are registered with this partner as members ahead of
|
|
29
|
+
* any emergency.
|
|
30
|
+
*
|
|
31
|
+
* Off by default, deliberately: registering somebody with a third party
|
|
32
|
+
* sends their name, telephone number and date of birth outside the
|
|
33
|
+
* platform, which an organization decides on purpose rather than by saving
|
|
34
|
+
* a form.
|
|
35
|
+
*/
|
|
36
|
+
membershipEnabled: boolean;
|
|
37
|
+
/** Which packages' subscribers are registered. */
|
|
38
|
+
membershipPackageScope: PartnerMembershipPackageScope;
|
|
39
|
+
/** Packages to register, when the scope is SELECTED. */
|
|
40
|
+
membershipPackageIds: number[];
|
|
41
|
+
/**
|
|
42
|
+
* True when the registered adapter can create members for this provider at
|
|
43
|
+
* all. Served from the adapter, not stored - so the admin hides the
|
|
44
|
+
* membership settings for a partner that cannot do it.
|
|
45
|
+
*/
|
|
46
|
+
membershipSupported?: boolean;
|
|
27
47
|
countryCode: CountryCode;
|
|
28
48
|
status: PartnerIntegrationStatus;
|
|
29
49
|
partnerContactName: string | null;
|
|
@@ -59,6 +79,9 @@ export interface CreatePartnerIntegrationDto {
|
|
|
59
79
|
approvalWindowMinutes?: number;
|
|
60
80
|
enabled?: boolean;
|
|
61
81
|
priority?: number;
|
|
82
|
+
membershipEnabled?: boolean;
|
|
83
|
+
membershipPackageScope?: PartnerMembershipPackageScope;
|
|
84
|
+
membershipPackageIds?: number[];
|
|
62
85
|
countryCode?: CountryCode;
|
|
63
86
|
partnerContactName?: string;
|
|
64
87
|
partnerContactPhone?: string;
|
|
@@ -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",
|