@parkflow/shared-types 1.6.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.js +2 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/lot-health/index.d.ts +17 -0
- package/dist/types/lot-health/index.js +34 -0
- package/dist/types/lot-health/index.js.map +1 -0
- package/dist/types/lot-health/lot-backlog-severity.enum.d.ts +5 -0
- package/dist/types/lot-health/lot-backlog-severity.enum.js +10 -0
- package/dist/types/lot-health/lot-backlog-severity.enum.js.map +1 -0
- package/dist/types/lot-health/lot-backlog-status.interface.d.ts +8 -0
- package/dist/types/lot-health/lot-backlog-status.interface.js +3 -0
- package/dist/types/lot-health/lot-backlog-status.interface.js.map +1 -0
- package/dist/types/lot-health/lot-blackout-impact-sample.interface.d.ts +8 -0
- package/dist/types/lot-health/lot-blackout-impact-sample.interface.js +3 -0
- package/dist/types/lot-health/lot-blackout-impact-sample.interface.js.map +1 -0
- package/dist/types/lot-health/lot-blackout-impact.interface.d.ts +6 -0
- package/dist/types/lot-health/lot-blackout-impact.interface.js +3 -0
- package/dist/types/lot-health/lot-blackout-impact.interface.js.map +1 -0
- package/dist/types/lot-health/lot-blackout-window.interface.d.ts +10 -0
- package/dist/types/lot-health/lot-blackout-window.interface.js +3 -0
- package/dist/types/lot-health/lot-blackout-window.interface.js.map +1 -0
- package/dist/types/lot-health/lot-daily-metrics.interface.d.ts +8 -0
- package/dist/types/lot-health/lot-daily-metrics.interface.js +3 -0
- package/dist/types/lot-health/lot-daily-metrics.interface.js.map +1 -0
- package/dist/types/lot-health/lot-day-funnel.interface.d.ts +12 -0
- package/dist/types/lot-health/lot-day-funnel.interface.js +3 -0
- package/dist/types/lot-health/lot-day-funnel.interface.js.map +1 -0
- package/dist/types/lot-health/lot-enforcement-config.interface.d.ts +8 -0
- package/dist/types/lot-health/lot-enforcement-config.interface.js +3 -0
- package/dist/types/lot-health/lot-enforcement-config.interface.js.map +1 -0
- package/dist/types/lot-health/lot-enforcement-run-info.interface.d.ts +7 -0
- package/dist/types/lot-health/lot-enforcement-run-info.interface.js +3 -0
- package/dist/types/lot-health/lot-enforcement-run-info.interface.js.map +1 -0
- package/dist/types/lot-health/lot-enforcement-trigger-source.enum.d.ts +6 -0
- package/dist/types/lot-health/lot-enforcement-trigger-source.enum.js +11 -0
- package/dist/types/lot-health/lot-enforcement-trigger-source.enum.js.map +1 -0
- package/dist/types/lot-health/lot-health-response.interface.d.ts +22 -0
- package/dist/types/lot-health/lot-health-response.interface.js +3 -0
- package/dist/types/lot-health/lot-health-response.interface.js.map +1 -0
- package/dist/types/lot-health/lot-recent-validation.interface.d.ts +10 -0
- package/dist/types/lot-health/lot-recent-validation.interface.js +3 -0
- package/dist/types/lot-health/lot-recent-validation.interface.js.map +1 -0
- package/dist/types/lot-health/lot-validation-activity-section.interface.d.ts +6 -0
- package/dist/types/lot-health/lot-validation-activity-section.interface.js +3 -0
- package/dist/types/lot-health/lot-validation-activity-section.interface.js.map +1 -0
- package/dist/types/lot-health/lot-validation-provider-state.enum.d.ts +5 -0
- package/dist/types/lot-health/lot-validation-provider-state.enum.js +10 -0
- package/dist/types/lot-health/lot-validation-provider-state.enum.js.map +1 -0
- package/dist/types/lot-health/lot-validation-provider-status.interface.d.ts +8 -0
- package/dist/types/lot-health/lot-validation-provider-status.interface.js +3 -0
- package/dist/types/lot-health/lot-validation-provider-status.interface.js.map +1 -0
- package/dist/types/lot-health/lot-webhook-activity.interface.d.ts +12 -0
- package/dist/types/lot-health/lot-webhook-activity.interface.js +3 -0
- package/dist/types/lot-health/lot-webhook-activity.interface.js.map +1 -0
- package/dist/types/lot-health/validation-reason-bucket.interface.d.ts +4 -0
- package/dist/types/lot-health/validation-reason-bucket.interface.js +3 -0
- package/dist/types/lot-health/validation-reason-bucket.interface.js.map +1 -0
- package/package.json +1 -1
- package/src/types/index.ts +2 -1
- package/src/types/lot-health/index.ts +17 -0
- package/src/types/lot-health/lot-backlog-severity.enum.ts +5 -0
- package/src/types/lot-health/lot-backlog-status.interface.ts +10 -0
- package/src/types/lot-health/lot-blackout-impact-sample.interface.ts +14 -0
- package/src/types/lot-health/lot-blackout-impact.interface.ts +15 -0
- package/src/types/lot-health/lot-blackout-window.interface.ts +20 -0
- package/src/types/lot-health/lot-daily-metrics.interface.ts +8 -0
- package/src/types/lot-health/lot-day-funnel.interface.ts +14 -0
- package/src/types/lot-health/lot-enforcement-config.interface.ts +8 -0
- package/src/types/lot-health/lot-enforcement-run-info.interface.ts +8 -0
- package/src/types/lot-health/lot-enforcement-trigger-source.enum.ts +6 -0
- package/src/types/lot-health/lot-health-response.interface.ts +27 -0
- package/src/types/lot-health/lot-recent-validation.interface.ts +14 -0
- package/src/types/lot-health/lot-validation-activity-section.interface.ts +9 -0
- package/src/types/lot-health/lot-validation-provider-state.enum.ts +8 -0
- package/src/types/lot-health/lot-validation-provider-status.interface.ts +9 -0
- package/src/types/lot-health/lot-webhook-activity.interface.ts +16 -0
- package/src/types/lot-health/validation-reason-bucket.interface.ts +4 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lot-backlog-severity.enum"), exports);
|
|
18
|
+
__exportStar(require("./lot-backlog-status.interface"), exports);
|
|
19
|
+
__exportStar(require("./lot-blackout-impact-sample.interface"), exports);
|
|
20
|
+
__exportStar(require("./lot-blackout-impact.interface"), exports);
|
|
21
|
+
__exportStar(require("./lot-blackout-window.interface"), exports);
|
|
22
|
+
__exportStar(require("./lot-daily-metrics.interface"), exports);
|
|
23
|
+
__exportStar(require("./lot-day-funnel.interface"), exports);
|
|
24
|
+
__exportStar(require("./lot-enforcement-config.interface"), exports);
|
|
25
|
+
__exportStar(require("./lot-enforcement-run-info.interface"), exports);
|
|
26
|
+
__exportStar(require("./lot-enforcement-trigger-source.enum"), exports);
|
|
27
|
+
__exportStar(require("./lot-health-response.interface"), exports);
|
|
28
|
+
__exportStar(require("./lot-recent-validation.interface"), exports);
|
|
29
|
+
__exportStar(require("./lot-validation-activity-section.interface"), exports);
|
|
30
|
+
__exportStar(require("./lot-validation-provider-state.enum"), exports);
|
|
31
|
+
__exportStar(require("./lot-validation-provider-status.interface"), exports);
|
|
32
|
+
__exportStar(require("./lot-webhook-activity.interface"), exports);
|
|
33
|
+
__exportStar(require("./validation-reason-bucket.interface"), exports);
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/lot-health/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,iEAA+C;AAC/C,yEAAuD;AACvD,kEAAgD;AAChD,kEAAgD;AAChD,gEAA8C;AAC9C,6DAA2C;AAC3C,qEAAmD;AACnD,uEAAqD;AACrD,wEAAsD;AACtD,kEAAgD;AAChD,oEAAkD;AAClD,8EAA4D;AAC5D,uEAAqD;AACrD,6EAA2D;AAC3D,mEAAiD;AACjD,uEAAqD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LotBacklogSeverity = void 0;
|
|
4
|
+
var LotBacklogSeverity;
|
|
5
|
+
(function (LotBacklogSeverity) {
|
|
6
|
+
LotBacklogSeverity["Ok"] = "ok";
|
|
7
|
+
LotBacklogSeverity["Warn"] = "warn";
|
|
8
|
+
LotBacklogSeverity["Alert"] = "alert";
|
|
9
|
+
})(LotBacklogSeverity || (exports.LotBacklogSeverity = LotBacklogSeverity = {}));
|
|
10
|
+
//# sourceMappingURL=lot-backlog-severity.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-backlog-severity.enum.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-backlog-severity.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,+BAAS,CAAA;IACT,mCAAa,CAAA;IACb,qCAAe,CAAA;AACnB,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LotBacklogSeverity } from './lot-backlog-severity.enum';
|
|
2
|
+
export interface LotBacklogStatus {
|
|
3
|
+
unprocessedCount: number;
|
|
4
|
+
oldestUnprocessedAtUtc: string | null;
|
|
5
|
+
oldestUnprocessedAgeSeconds: number | null;
|
|
6
|
+
severity: LotBacklogSeverity;
|
|
7
|
+
advisory: string | null;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-backlog-status.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-backlog-status.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-blackout-impact-sample.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-blackout-impact-sample.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-blackout-impact.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-blackout-impact.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LotBlackoutImpactSample } from './lot-blackout-impact-sample.interface';
|
|
2
|
+
export interface LotBlackoutWindow {
|
|
3
|
+
paymentIntegrationId: number;
|
|
4
|
+
providerName: string;
|
|
5
|
+
startUtc: string;
|
|
6
|
+
endUtc: string;
|
|
7
|
+
durationSeconds: number;
|
|
8
|
+
impactedTicketCount: number;
|
|
9
|
+
sample: LotBlackoutImpactSample | null;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-blackout-window.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-blackout-window.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-daily-metrics.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-daily-metrics.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ValidationReasonBucket } from './validation-reason-bucket.interface';
|
|
2
|
+
export interface LotDayFunnel {
|
|
3
|
+
dayLabel: string;
|
|
4
|
+
rangeStartUtc: string;
|
|
5
|
+
rangeEndUtc: string;
|
|
6
|
+
totalSessions: number;
|
|
7
|
+
validatedCount: number;
|
|
8
|
+
ticketedCount: number;
|
|
9
|
+
unprocessedCount: number;
|
|
10
|
+
violationRatePct: number | null;
|
|
11
|
+
validationReasons: ValidationReasonBucket[];
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-day-funnel.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-day-funnel.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-enforcement-config.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-enforcement-config.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { LotEnforcementTriggerSource } from './lot-enforcement-trigger-source.enum';
|
|
2
|
+
export interface LotEnforcementRunInfo {
|
|
3
|
+
lastRunAtUtc: string;
|
|
4
|
+
lastSuccessAtUtc: string | null;
|
|
5
|
+
lastTriggerSource: LotEnforcementTriggerSource;
|
|
6
|
+
lastError: string | null;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-enforcement-run-info.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-enforcement-run-info.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LotEnforcementTriggerSource = void 0;
|
|
4
|
+
var LotEnforcementTriggerSource;
|
|
5
|
+
(function (LotEnforcementTriggerSource) {
|
|
6
|
+
LotEnforcementTriggerSource["Cron"] = "cron";
|
|
7
|
+
LotEnforcementTriggerSource["Manual"] = "manual";
|
|
8
|
+
LotEnforcementTriggerSource["CaptureEvent"] = "capture-event";
|
|
9
|
+
LotEnforcementTriggerSource["Unknown"] = "unknown";
|
|
10
|
+
})(LotEnforcementTriggerSource || (exports.LotEnforcementTriggerSource = LotEnforcementTriggerSource = {}));
|
|
11
|
+
//# sourceMappingURL=lot-enforcement-trigger-source.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-enforcement-trigger-source.enum.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-enforcement-trigger-source.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,2BAKX;AALD,WAAY,2BAA2B;IACnC,4CAAa,CAAA;IACb,gDAAiB,CAAA;IACjB,6DAA8B,CAAA;IAC9B,kDAAmB,CAAA;AACvB,CAAC,EALW,2BAA2B,2CAA3B,2BAA2B,QAKtC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { LotEnforcementConfig } from './lot-enforcement-config.interface';
|
|
2
|
+
import { LotBacklogStatus } from './lot-backlog-status.interface';
|
|
3
|
+
import { LotBlackoutImpact } from './lot-blackout-impact.interface';
|
|
4
|
+
import { LotDayFunnel } from './lot-day-funnel.interface';
|
|
5
|
+
import { LotDailyMetrics } from './lot-daily-metrics.interface';
|
|
6
|
+
import { LotEnforcementRunInfo } from './lot-enforcement-run-info.interface';
|
|
7
|
+
import { LotWebhookActivity } from './lot-webhook-activity.interface';
|
|
8
|
+
import { LotValidationActivitySection } from './lot-validation-activity-section.interface';
|
|
9
|
+
export interface LotHealthResponse {
|
|
10
|
+
lotId: number;
|
|
11
|
+
lotCode: string;
|
|
12
|
+
timeZone: string;
|
|
13
|
+
generatedAtUtc: string;
|
|
14
|
+
config: LotEnforcementConfig;
|
|
15
|
+
backlog: LotBacklogStatus;
|
|
16
|
+
today: LotDayFunnel;
|
|
17
|
+
trend: LotDailyMetrics[];
|
|
18
|
+
lastEnforcementRun: LotEnforcementRunInfo | null;
|
|
19
|
+
webhooks: LotWebhookActivity[];
|
|
20
|
+
validations: LotValidationActivitySection;
|
|
21
|
+
blackoutImpact: LotBlackoutImpact;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-health-response.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-health-response.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-recent-validation.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-recent-validation.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { LotRecentValidation } from './lot-recent-validation.interface';
|
|
2
|
+
import { LotValidationProviderStatus } from './lot-validation-provider-status.interface';
|
|
3
|
+
export interface LotValidationActivitySection {
|
|
4
|
+
providers: LotValidationProviderStatus[];
|
|
5
|
+
recent: LotRecentValidation[];
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-validation-activity-section.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-validation-activity-section.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LotValidationProviderState = void 0;
|
|
4
|
+
var LotValidationProviderState;
|
|
5
|
+
(function (LotValidationProviderState) {
|
|
6
|
+
LotValidationProviderState["Active"] = "active";
|
|
7
|
+
LotValidationProviderState["Stale"] = "stale";
|
|
8
|
+
LotValidationProviderState["Silent"] = "silent";
|
|
9
|
+
})(LotValidationProviderState || (exports.LotValidationProviderState = LotValidationProviderState = {}));
|
|
10
|
+
//# sourceMappingURL=lot-validation-provider-state.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-validation-provider-state.enum.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-validation-provider-state.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,0BAOX;AAPD,WAAY,0BAA0B;IAElC,+CAAiB,CAAA;IAEjB,6CAAe,CAAA;IAEf,+CAAiB,CAAA;AACrB,CAAC,EAPW,0BAA0B,0CAA1B,0BAA0B,QAOrC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LotValidationProviderState } from './lot-validation-provider-state.enum';
|
|
2
|
+
export interface LotValidationProviderStatus {
|
|
3
|
+
paymentIntegrationId: number;
|
|
4
|
+
providerName: string;
|
|
5
|
+
state: LotValidationProviderState;
|
|
6
|
+
countLast24h: number;
|
|
7
|
+
lastReceivedAtUtc: string | null;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-validation-provider-status.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-validation-provider-status.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface LotWebhookActivity {
|
|
2
|
+
id: string;
|
|
3
|
+
eventType: string;
|
|
4
|
+
status: string;
|
|
5
|
+
statusCode: number | null;
|
|
6
|
+
subscriberName: string | null;
|
|
7
|
+
destinationUrl: string | null;
|
|
8
|
+
createdAtUtc: string;
|
|
9
|
+
retryCount: number;
|
|
10
|
+
errorMessage: string | null;
|
|
11
|
+
payload: unknown;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lot-webhook-activity.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/lot-webhook-activity.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-reason-bucket.interface.js","sourceRoot":"","sources":["../../../src/types/lot-health/validation-reason-bucket.interface.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
package/src/types/index.ts
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from './lot-backlog-severity.enum';
|
|
2
|
+
export * from './lot-backlog-status.interface';
|
|
3
|
+
export * from './lot-blackout-impact-sample.interface';
|
|
4
|
+
export * from './lot-blackout-impact.interface';
|
|
5
|
+
export * from './lot-blackout-window.interface';
|
|
6
|
+
export * from './lot-daily-metrics.interface';
|
|
7
|
+
export * from './lot-day-funnel.interface';
|
|
8
|
+
export * from './lot-enforcement-config.interface';
|
|
9
|
+
export * from './lot-enforcement-run-info.interface';
|
|
10
|
+
export * from './lot-enforcement-trigger-source.enum';
|
|
11
|
+
export * from './lot-health-response.interface';
|
|
12
|
+
export * from './lot-recent-validation.interface';
|
|
13
|
+
export * from './lot-validation-activity-section.interface';
|
|
14
|
+
export * from './lot-validation-provider-state.enum';
|
|
15
|
+
export * from './lot-validation-provider-status.interface';
|
|
16
|
+
export * from './lot-webhook-activity.interface';
|
|
17
|
+
export * from './validation-reason-bucket.interface';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LotBacklogSeverity } from './lot-backlog-severity.enum';
|
|
2
|
+
|
|
3
|
+
export interface LotBacklogStatus {
|
|
4
|
+
unprocessedCount: number;
|
|
5
|
+
oldestUnprocessedAtUtc: string | null;
|
|
6
|
+
oldestUnprocessedAgeSeconds: number | null;
|
|
7
|
+
severity: LotBacklogSeverity;
|
|
8
|
+
/** Phrased for end-user display so the UI does not derive its own copy. */
|
|
9
|
+
advisory: string | null;
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One representative ticket whose underlying session ended during a payment-integration blackout
|
|
3
|
+
* and is currently in a mailing-eligible status. The oldest such ticket per blackout window is picked.
|
|
4
|
+
*/
|
|
5
|
+
export interface LotBlackoutImpactSample {
|
|
6
|
+
ticketId: string;
|
|
7
|
+
ticketNumber: string;
|
|
8
|
+
sessionId: string;
|
|
9
|
+
lpn: string;
|
|
10
|
+
/** ISO-8601 UTC timestamp of the session's exit capture. */
|
|
11
|
+
sessionExitAtUtc: string;
|
|
12
|
+
/** Current ticket status (e.g. "Pending", "Ready", "Dispatched"). */
|
|
13
|
+
ticketStatus: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { LotBlackoutWindow } from './lot-blackout-window.interface';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Summary of payment-integration blackout windows on a lot and the tickets currently at risk
|
|
5
|
+
* because of them. A blackout window is a gap between consecutive validation rows for a given
|
|
6
|
+
* (lot, payment integration) longer than a configured threshold within a recent lookback.
|
|
7
|
+
*/
|
|
8
|
+
export interface LotBlackoutImpact {
|
|
9
|
+
/** Lookback window applied when scanning for gaps, in seconds. */
|
|
10
|
+
lookbackSeconds: number;
|
|
11
|
+
/** Minimum gap (in seconds) treated as a blackout. */
|
|
12
|
+
gapThresholdSeconds: number;
|
|
13
|
+
/** Detected blackout windows, ordered by startUtc ascending. */
|
|
14
|
+
windows: LotBlackoutWindow[];
|
|
15
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { LotBlackoutImpactSample } from './lot-blackout-impact-sample.interface';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A detected gap in inbound payment-integration validations for a lot, paired with the count of
|
|
5
|
+
* tickets currently in a mailing-eligible status whose session ended inside the gap.
|
|
6
|
+
*/
|
|
7
|
+
export interface LotBlackoutWindow {
|
|
8
|
+
paymentIntegrationId: number;
|
|
9
|
+
providerName: string;
|
|
10
|
+
/** ISO-8601 UTC timestamp marking the start of the blackout. */
|
|
11
|
+
startUtc: string;
|
|
12
|
+
/** ISO-8601 UTC timestamp marking the end of the blackout. */
|
|
13
|
+
endUtc: string;
|
|
14
|
+
/** Length of the blackout in seconds — convenience for the UI. */
|
|
15
|
+
durationSeconds: number;
|
|
16
|
+
/** Tickets in mailing-eligible status whose session exit falls inside this window. */
|
|
17
|
+
impactedTicketCount: number;
|
|
18
|
+
/** A representative impacted ticket (oldest by session exit). Null when impactedTicketCount === 0. */
|
|
19
|
+
sample: LotBlackoutImpactSample | null;
|
|
20
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValidationReasonBucket } from './validation-reason-bucket.interface';
|
|
2
|
+
|
|
3
|
+
export interface LotDayFunnel {
|
|
4
|
+
dayLabel: string;
|
|
5
|
+
rangeStartUtc: string;
|
|
6
|
+
rangeEndUtc: string;
|
|
7
|
+
totalSessions: number;
|
|
8
|
+
validatedCount: number;
|
|
9
|
+
ticketedCount: number;
|
|
10
|
+
unprocessedCount: number;
|
|
11
|
+
/** Null while unprocessedCount > 0 — the rate is not final until enforcement has run. */
|
|
12
|
+
violationRatePct: number | null;
|
|
13
|
+
validationReasons: ValidationReasonBucket[];
|
|
14
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LotEnforcementTriggerSource } from './lot-enforcement-trigger-source.enum';
|
|
2
|
+
|
|
3
|
+
export interface LotEnforcementRunInfo {
|
|
4
|
+
lastRunAtUtc: string;
|
|
5
|
+
lastSuccessAtUtc: string | null;
|
|
6
|
+
lastTriggerSource: LotEnforcementTriggerSource;
|
|
7
|
+
lastError: string | null;
|
|
8
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { LotEnforcementConfig } from './lot-enforcement-config.interface';
|
|
2
|
+
import { LotBacklogStatus } from './lot-backlog-status.interface';
|
|
3
|
+
import { LotBlackoutImpact } from './lot-blackout-impact.interface';
|
|
4
|
+
import { LotDayFunnel } from './lot-day-funnel.interface';
|
|
5
|
+
import { LotDailyMetrics } from './lot-daily-metrics.interface';
|
|
6
|
+
import { LotEnforcementRunInfo } from './lot-enforcement-run-info.interface';
|
|
7
|
+
import { LotWebhookActivity } from './lot-webhook-activity.interface';
|
|
8
|
+
import { LotValidationActivitySection } from './lot-validation-activity-section.interface';
|
|
9
|
+
|
|
10
|
+
export interface LotHealthResponse {
|
|
11
|
+
lotId: number;
|
|
12
|
+
lotCode: string;
|
|
13
|
+
timeZone: string;
|
|
14
|
+
generatedAtUtc: string;
|
|
15
|
+
config: LotEnforcementConfig;
|
|
16
|
+
backlog: LotBacklogStatus;
|
|
17
|
+
today: LotDayFunnel;
|
|
18
|
+
/** Days with zero sessions are still returned so chart density is preserved. */
|
|
19
|
+
trend: LotDailyMetrics[];
|
|
20
|
+
lastEnforcementRun: LotEnforcementRunInfo | null;
|
|
21
|
+
/** Most recent outbound webhook deliveries tagged with this lot, capped to a small window. */
|
|
22
|
+
webhooks: LotWebhookActivity[];
|
|
23
|
+
/** Inbound payment validations and the configured-provider health summary for the last 24h. */
|
|
24
|
+
validations: LotValidationActivitySection;
|
|
25
|
+
/** Detected payment-integration blackout windows and tickets currently at risk because of them. */
|
|
26
|
+
blackoutImpact: LotBlackoutImpact;
|
|
27
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One inbound parking validation as displayed in the Health tab.
|
|
3
|
+
* IDs are synthesised from receiptId + lpn + start so React keys are stable across polls.
|
|
4
|
+
*/
|
|
5
|
+
export interface LotRecentValidation {
|
|
6
|
+
id: string;
|
|
7
|
+
lpn: string;
|
|
8
|
+
state: string | null;
|
|
9
|
+
providerName: string | null;
|
|
10
|
+
receiptId: string | null;
|
|
11
|
+
startUtc: string;
|
|
12
|
+
endUtc: string;
|
|
13
|
+
receivedAtUtc: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { LotRecentValidation } from './lot-recent-validation.interface';
|
|
2
|
+
import { LotValidationProviderStatus } from './lot-validation-provider-status.interface';
|
|
3
|
+
|
|
4
|
+
export interface LotValidationActivitySection {
|
|
5
|
+
/** One entry per payment integration configured on the lot, ordered by provider name. */
|
|
6
|
+
providers: LotValidationProviderStatus[];
|
|
7
|
+
/** Most recent inbound validations for the lot, capped to a small window. */
|
|
8
|
+
recent: LotRecentValidation[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export enum LotValidationProviderState {
|
|
2
|
+
/** Validations in the last 24h with most recent within ~2 hours. */
|
|
3
|
+
Active = 'active',
|
|
4
|
+
/** Validations exist in 24h but most recent is older than ~2 hours. */
|
|
5
|
+
Stale = 'stale',
|
|
6
|
+
/** Provider is configured on the lot but produced no validations in 24h. */
|
|
7
|
+
Silent = 'silent',
|
|
8
|
+
}
|