clarion-shared-types 1.0.34 → 1.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/cjs/interfaces/report-list.js +2 -0
  2. package/dist/cjs/interfaces/report-list.js.map +1 -0
  3. package/dist/cjs/modules/incident/intefaces/analytics/index.js +2 -2
  4. package/dist/cjs/modules/incident/intefaces/analytics/index.js.map +1 -1
  5. package/dist/cjs/modules/incident/intefaces/analytics/{chart-data.js → request.js} +1 -1
  6. package/dist/cjs/modules/incident/intefaces/analytics/request.js.map +1 -0
  7. package/dist/cjs/modules/incident/intefaces/analytics/{incident-analytics.js → response.js} +1 -1
  8. package/dist/cjs/modules/incident/intefaces/analytics/response.js.map +1 -0
  9. package/dist/cjs/modules/role/constants/roles-by-scope.js +17 -0
  10. package/dist/cjs/modules/role/constants/roles-by-scope.js.map +1 -0
  11. package/dist/cjs/modules/role/enums/role.enum.js +3 -0
  12. package/dist/cjs/modules/role/enums/role.enum.js.map +1 -1
  13. package/dist/cjs/modules/role/index.js +1 -0
  14. package/dist/cjs/modules/role/index.js.map +1 -1
  15. package/dist/esm/interfaces/report-list.js +2 -0
  16. package/dist/esm/interfaces/report-list.js.map +1 -0
  17. package/dist/esm/modules/incident/intefaces/analytics/index.js +2 -2
  18. package/dist/esm/modules/incident/intefaces/analytics/index.js.map +1 -1
  19. package/dist/esm/modules/incident/intefaces/analytics/request.js +2 -0
  20. package/dist/esm/modules/incident/intefaces/analytics/request.js.map +1 -0
  21. package/dist/esm/modules/incident/intefaces/analytics/response.js +2 -0
  22. package/dist/esm/modules/incident/intefaces/analytics/response.js.map +1 -0
  23. package/dist/esm/modules/role/constants/roles-by-scope.js +14 -0
  24. package/dist/esm/modules/role/constants/roles-by-scope.js.map +1 -0
  25. package/dist/esm/modules/role/enums/role.enum.js +3 -0
  26. package/dist/esm/modules/role/enums/role.enum.js.map +1 -1
  27. package/dist/esm/modules/role/index.js +1 -0
  28. package/dist/esm/modules/role/index.js.map +1 -1
  29. package/dist/types/interfaces/report-list.d.ts +0 -0
  30. package/dist/types/modules/incident/intefaces/analytics/index.d.ts +2 -2
  31. package/dist/types/modules/incident/intefaces/analytics/request.d.ts +30 -0
  32. package/dist/types/modules/incident/intefaces/analytics/{incident-analytics.d.ts → response.d.ts} +53 -27
  33. package/dist/types/modules/role/constants/roles-by-scope.d.ts +3 -0
  34. package/dist/types/modules/role/enums/role.enum.d.ts +3 -0
  35. package/dist/types/modules/role/index.d.ts +1 -0
  36. package/package.json +1 -1
  37. package/dist/cjs/modules/incident/intefaces/analytics/chart-data.js.map +0 -1
  38. package/dist/cjs/modules/incident/intefaces/analytics/incident-analytics.js.map +0 -1
  39. package/dist/esm/modules/incident/intefaces/analytics/chart-data.js +0 -2
  40. package/dist/esm/modules/incident/intefaces/analytics/chart-data.js.map +0 -1
  41. package/dist/esm/modules/incident/intefaces/analytics/incident-analytics.js +0 -2
  42. package/dist/esm/modules/incident/intefaces/analytics/incident-analytics.js.map +0 -1
  43. package/dist/types/modules/incident/intefaces/analytics/chart-data.d.ts +0 -62
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=report-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-list.js","sourceRoot":"","sources":["../../../src/interfaces/report-list.ts"],"names":[],"mappings":""}
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./chart-data"), exports);
18
- __exportStar(require("./incident-analytics"), exports);
17
+ __exportStar(require("./request"), exports);
18
+ __exportStar(require("./response"), exports);
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=chart-data.js.map
3
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/request.ts"],"names":[],"mappings":""}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=incident-analytics.js.map
3
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/response.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MOBILE_ROLES = exports.CONTROL_CENTRE_ROLES = exports.ORGANIZATION_ROLES = void 0;
4
+ const role_enum_1 = require("../enums/role.enum");
5
+ exports.ORGANIZATION_ROLES = [
6
+ role_enum_1.Roles.ORGANIZATION_OWNER,
7
+ role_enum_1.Roles.ORGANIZATION_ADMIN,
8
+ role_enum_1.Roles.ORGANIZATION_USER
9
+ ];
10
+ exports.CONTROL_CENTRE_ROLES = [
11
+ role_enum_1.Roles.CONTROL_CENTRE_ADMIN,
12
+ role_enum_1.Roles.CONTROL_CENTRE_USER
13
+ ];
14
+ exports.MOBILE_ROLES = [
15
+ role_enum_1.Roles.MOBILE_USER
16
+ ];
17
+ //# sourceMappingURL=roles-by-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles-by-scope.js","sourceRoot":"","sources":["../../../../../src/modules/role/constants/roles-by-scope.ts"],"names":[],"mappings":";;;AAAA,kDAA2C;AAE9B,QAAA,kBAAkB,GAAa;IACxC,iBAAK,CAAC,kBAAkB;IACxB,iBAAK,CAAC,kBAAkB;IACxB,iBAAK,CAAC,iBAAiB;CAC1B,CAAC;AAEW,QAAA,oBAAoB,GAAa;IAC1C,iBAAK,CAAC,oBAAoB;IAC1B,iBAAK,CAAC,mBAAmB;CAC5B,CAAC;AAEW,QAAA,YAAY,GAAa;IAClC,iBAAK,CAAC,WAAW;CACpB,CAAC"}
@@ -11,4 +11,7 @@ var Roles;
11
11
  Roles["CONTROL_CENTRE_USER"] = "Control-Centre:User";
12
12
  Roles["MOBILE_USER"] = "Mobile-User";
13
13
  })(Roles || (exports.Roles = Roles = {}));
14
+ /**
15
+ * When defining a new role, also update the roles-by-scope.ts file
16
+ */
14
17
  //# sourceMappingURL=role.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"role.enum.js","sourceRoot":"","sources":["../../../../../src/modules/role/enums/role.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,KAQX;AARD,WAAY,KAAK;IACb,oCAA2B,CAAA;IAC3B,kDAAyC,CAAA;IACzC,kDAAyC,CAAA;IACzC,gDAAuC,CAAA;IACvC,sDAA6C,CAAA;IAC7C,oDAA2C,CAAA;IAC3C,oCAA2B,CAAA;AAC/B,CAAC,EARW,KAAK,qBAAL,KAAK,QAQhB"}
1
+ {"version":3,"file":"role.enum.js","sourceRoot":"","sources":["../../../../../src/modules/role/enums/role.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,KAQX;AARD,WAAY,KAAK;IACb,oCAA2B,CAAA;IAC3B,kDAAyC,CAAA;IACzC,kDAAyC,CAAA;IACzC,gDAAuC,CAAA;IACvC,sDAA6C,CAAA;IAC7C,oDAA2C,CAAA;IAC3C,oCAA2B,CAAA;AAC/B,CAAC,EARW,KAAK,qBAAL,KAAK,QAQhB;AAED;;GAEG"}
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./enums/role.enum"), exports);
18
18
  __exportStar(require("./interfaces/role"), exports);
19
+ __exportStar(require("./constants/roles-by-scope"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/role/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/role/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,oDAAkC;AAClC,6DAA2C"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=report-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-list.js","sourceRoot":"","sources":["../../../src/interfaces/report-list.ts"],"names":[],"mappings":""}
@@ -1,3 +1,3 @@
1
- export * from './chart-data';
2
- export * from './incident-analytics';
1
+ export * from './request';
2
+ export * from './response';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/request.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/response.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { Roles } from "../enums/role.enum";
2
+ export const ORGANIZATION_ROLES = [
3
+ Roles.ORGANIZATION_OWNER,
4
+ Roles.ORGANIZATION_ADMIN,
5
+ Roles.ORGANIZATION_USER
6
+ ];
7
+ export const CONTROL_CENTRE_ROLES = [
8
+ Roles.CONTROL_CENTRE_ADMIN,
9
+ Roles.CONTROL_CENTRE_USER
10
+ ];
11
+ export const MOBILE_ROLES = [
12
+ Roles.MOBILE_USER
13
+ ];
14
+ //# sourceMappingURL=roles-by-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles-by-scope.js","sourceRoot":"","sources":["../../../../../src/modules/role/constants/roles-by-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAa;IACxC,KAAK,CAAC,kBAAkB;IACxB,KAAK,CAAC,kBAAkB;IACxB,KAAK,CAAC,iBAAiB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAa;IAC1C,KAAK,CAAC,oBAAoB;IAC1B,KAAK,CAAC,mBAAmB;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAa;IAClC,KAAK,CAAC,WAAW;CACpB,CAAC"}
@@ -8,4 +8,7 @@ export var Roles;
8
8
  Roles["CONTROL_CENTRE_USER"] = "Control-Centre:User";
9
9
  Roles["MOBILE_USER"] = "Mobile-User";
10
10
  })(Roles || (Roles = {}));
11
+ /**
12
+ * When defining a new role, also update the roles-by-scope.ts file
13
+ */
11
14
  //# sourceMappingURL=role.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"role.enum.js","sourceRoot":"","sources":["../../../../../src/modules/role/enums/role.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,KAQX;AARD,WAAY,KAAK;IACb,oCAA2B,CAAA;IAC3B,kDAAyC,CAAA;IACzC,kDAAyC,CAAA;IACzC,gDAAuC,CAAA;IACvC,sDAA6C,CAAA;IAC7C,oDAA2C,CAAA;IAC3C,oCAA2B,CAAA;AAC/B,CAAC,EARW,KAAK,KAAL,KAAK,QAQhB"}
1
+ {"version":3,"file":"role.enum.js","sourceRoot":"","sources":["../../../../../src/modules/role/enums/role.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,KAQX;AARD,WAAY,KAAK;IACb,oCAA2B,CAAA;IAC3B,kDAAyC,CAAA;IACzC,kDAAyC,CAAA;IACzC,gDAAuC,CAAA;IACvC,sDAA6C,CAAA;IAC7C,oDAA2C,CAAA;IAC3C,oCAA2B,CAAA;AAC/B,CAAC,EARW,KAAK,KAAL,KAAK,QAQhB;AAED;;GAEG"}
@@ -1,3 +1,4 @@
1
1
  export * from './enums/role.enum';
2
2
  export * from './interfaces/role';
3
+ export * from './constants/roles-by-scope';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/role/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/role/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC"}
File without changes
@@ -1,2 +1,2 @@
1
- export * from './chart-data';
2
- export * from './incident-analytics';
1
+ export * from './request';
2
+ export * from './response';
@@ -0,0 +1,30 @@
1
+ export interface AnalyticsFilter {
2
+ startDate?: string;
3
+ endDate?: string;
4
+ organizationId?: number;
5
+ controlCentreId?: number;
6
+ status?: string[];
7
+ priority?: string[];
8
+ channel?: string[];
9
+ categoryId?: number[];
10
+ typeId?: number[];
11
+ assigneeIds?: number[];
12
+ responseUnitIds?: number[];
13
+ }
14
+ export type TimeGranularity = 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
15
+ export interface ChartParameters {
16
+ chartType?: string;
17
+ limit?: number;
18
+ groupBy?: string;
19
+ granularity?: TimeGranularity;
20
+ }
21
+ export interface ForecastParameters {
22
+ periods?: number;
23
+ confidence?: number;
24
+ model?: 'linear' | 'seasonal' | 'arima' | 'auto';
25
+ }
26
+ export interface AnomalyDetectionParameters {
27
+ sensitivity?: number;
28
+ threshold?: number;
29
+ types?: ('volume_spike' | 'response_delay' | 'unusual_pattern')[];
30
+ }
@@ -1,13 +1,46 @@
1
- import { ChartDataPoint, TimeSeriesDataPoint, GeographicDataPoint, TrendDataPoint, PerformanceMetric } from './chart-data';
2
- export interface IncidentAnalyticsData {
3
- overview: IncidentOverviewData;
4
- statusDistribution: ChartDataPoint[];
5
- priorityDistribution: ChartDataPoint[];
6
- categoryAnalysis: ChartDataPoint[];
7
- timeBasedAnalysis: TimeSeriesDataPoint[];
8
- geographicAnalysis: GeographicDataPoint[];
9
- responseMetrics: PerformanceMetric[];
10
- trendAnalysis: TrendDataPoint[];
1
+ export interface ChartDataPoint {
2
+ label: string;
3
+ value: number;
4
+ percentage?: number;
5
+ color?: string;
6
+ }
7
+ export interface TimeSeriesDataPoint {
8
+ timestamp: string;
9
+ value: number;
10
+ label?: string;
11
+ }
12
+ export interface ComparisonDataPoint {
13
+ name: string;
14
+ current: number;
15
+ previous: number;
16
+ change: number;
17
+ changePercentage: number;
18
+ }
19
+ export interface GeographicDataPoint {
20
+ location: string;
21
+ latitude?: number;
22
+ longitude?: number;
23
+ count: number;
24
+ percentage?: number;
25
+ }
26
+ export interface TrendDataPoint {
27
+ period: string;
28
+ value: number;
29
+ trend: 'up' | 'down' | 'stable';
30
+ changeFromPrevious?: number;
31
+ }
32
+ export interface DrillDownDataPoint {
33
+ category: string;
34
+ value: number;
35
+ subCategories?: ChartDataPoint[];
36
+ }
37
+ export interface PerformanceMetric {
38
+ name: string;
39
+ value: number;
40
+ unit: string;
41
+ benchmark?: number;
42
+ status: 'good' | 'warning' | 'critical';
43
+ description?: string;
11
44
  }
12
45
  export interface IncidentOverviewData {
13
46
  totalIncidents: number;
@@ -24,6 +57,16 @@ export interface IncidentOverviewData {
24
57
  resolutionTimeTarget: number;
25
58
  slaCompliance: number;
26
59
  }
60
+ export interface IncidentAnalyticsData {
61
+ overview: IncidentOverviewData;
62
+ statusDistribution: ChartDataPoint[];
63
+ priorityDistribution: ChartDataPoint[];
64
+ categoryAnalysis: ChartDataPoint[];
65
+ timeBasedAnalysis: TimeSeriesDataPoint[];
66
+ geographicAnalysis: GeographicDataPoint[];
67
+ responseMetrics: PerformanceMetric[];
68
+ trendAnalysis: TrendDataPoint[];
69
+ }
27
70
  export interface IncidentHeatmapData {
28
71
  timeOfDay: number;
29
72
  dayOfWeek: number;
@@ -87,20 +130,3 @@ export interface ComplianceMetrics {
87
130
  documentationCompliance: number;
88
131
  trendsOverTime: TimeSeriesDataPoint[];
89
132
  }
90
- export interface ChartParameters {
91
- chartType?: string;
92
- limit?: number;
93
- groupBy?: string;
94
- granularity?: 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
95
- }
96
- export interface ForecastParameters {
97
- periods?: number;
98
- confidence?: number;
99
- model?: 'linear' | 'seasonal' | 'arima' | 'auto';
100
- }
101
- export interface AnomalyDetectionParameters {
102
- sensitivity?: number;
103
- threshold?: number;
104
- types?: ('volume_spike' | 'response_delay' | 'unusual_pattern')[];
105
- }
106
- export { ChartDataPoint, TimeSeriesDataPoint, ComparisonDataPoint, GeographicDataPoint, TrendDataPoint, DrillDownDataPoint, PerformanceMetric, AnalyticsFilter, DateRange } from './chart-data';
@@ -0,0 +1,3 @@
1
+ export declare const ORGANIZATION_ROLES: string[];
2
+ export declare const CONTROL_CENTRE_ROLES: string[];
3
+ export declare const MOBILE_ROLES: string[];
@@ -7,3 +7,6 @@ export declare enum Roles {
7
7
  CONTROL_CENTRE_USER = "Control-Centre:User",
8
8
  MOBILE_USER = "Mobile-User"
9
9
  }
10
+ /**
11
+ * When defining a new role, also update the roles-by-scope.ts file
12
+ */
@@ -1,2 +1,3 @@
1
1
  export * from './enums/role.enum';
2
2
  export * from './interfaces/role';
3
+ export * from './constants/roles-by-scope';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clarion-shared-types",
3
- "version": "1.0.34",
3
+ "version": "1.0.36",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-data.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/chart-data.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"incident-analytics.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/incident-analytics.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=chart-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-data.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/chart-data.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=incident-analytics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"incident-analytics.js","sourceRoot":"","sources":["../../../../../../src/modules/incident/intefaces/analytics/incident-analytics.ts"],"names":[],"mappings":""}
@@ -1,62 +0,0 @@
1
- export interface ChartDataPoint {
2
- label: string;
3
- value: number;
4
- percentage?: number;
5
- color?: string;
6
- }
7
- export interface TimeSeriesDataPoint {
8
- timestamp: string;
9
- value: number;
10
- label?: string;
11
- }
12
- export interface ComparisonDataPoint {
13
- name: string;
14
- current: number;
15
- previous: number;
16
- change: number;
17
- changePercentage: number;
18
- }
19
- export interface GeographicDataPoint {
20
- location: string;
21
- latitude?: number;
22
- longitude?: number;
23
- count: number;
24
- percentage?: number;
25
- }
26
- export interface TrendDataPoint {
27
- period: string;
28
- value: number;
29
- trend: 'up' | 'down' | 'stable';
30
- changeFromPrevious?: number;
31
- }
32
- export interface DrillDownDataPoint {
33
- category: string;
34
- value: number;
35
- subCategories?: ChartDataPoint[];
36
- }
37
- export interface PerformanceMetric {
38
- name: string;
39
- value: number;
40
- unit: string;
41
- benchmark?: number;
42
- status: 'good' | 'warning' | 'critical';
43
- description?: string;
44
- }
45
- export interface AnalyticsFilter {
46
- startDate?: Date;
47
- endDate?: Date;
48
- organizationId?: number;
49
- controlCentreId?: number;
50
- status?: string[];
51
- priority?: string[];
52
- channel?: string[];
53
- categoryId?: number[];
54
- typeId?: number[];
55
- assigneeIds?: number[];
56
- responseUnitIds?: number[];
57
- }
58
- export interface DateRange {
59
- start: Date;
60
- end: Date;
61
- label: string;
62
- }