dt-common-device 13.0.25 → 13.0.26

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 (179) hide show
  1. package/dist/admin/Admin.repository.d.ts +7 -0
  2. package/dist/admin/Admin.service.d.ts +5 -0
  3. package/dist/admin/index.d.ts +1 -0
  4. package/dist/alerts/AlertBuilder.example.d.ts +11 -0
  5. package/dist/alerts/AlertService.example.d.ts +55 -0
  6. package/dist/audit/AuditProperties.d.ts +16 -0
  7. package/dist/chronicle/Cronicle.service.d.ts +9 -0
  8. package/dist/chronicle/IChronicle.interface.d.ts +14 -0
  9. package/dist/chronicle/ICronicle.interface.d.ts +15 -0
  10. package/dist/chronicle/chronicle.service.d.ts +4 -0
  11. package/dist/chronicle/index.d.ts +2 -0
  12. package/dist/config/config.d.ts +1 -0
  13. package/dist/config/config.js +9 -0
  14. package/dist/config/constants.d.ts +1 -0
  15. package/dist/config/constants.js +2 -0
  16. package/dist/connection/Connection.repository.d.ts +8 -0
  17. package/dist/connection/Connection.service.d.ts +8 -0
  18. package/dist/connection/IConnection.d.ts +28 -0
  19. package/dist/connection/index.d.ts +2 -0
  20. package/dist/copilotQueue/examples/CopilotQueue.example.d.ts +37 -0
  21. package/dist/copilotQueue/examples/index.d.ts +1 -0
  22. package/dist/db/db.d.ts +1 -0
  23. package/dist/db/db.js +11 -0
  24. package/dist/device/cloud/entities/CloudConnection.d.ts +6 -0
  25. package/dist/device/cloud/entities/CloudDevice.d.ts +16 -0
  26. package/dist/device/cloud/entities/CloudDeviceService.d.ts +5 -0
  27. package/dist/device/cloud/entities/DeviceFactory.d.ts +7 -0
  28. package/dist/device/cloud/entities/index.d.ts +3 -0
  29. package/dist/device/cloud/interface.d.ts +101 -0
  30. package/dist/device/cloud/interfaces/ICloudConnection.d.ts +5 -0
  31. package/dist/device/cloud/interfaces/ICloudDevice.d.ts +9 -0
  32. package/dist/device/cloud/interfaces/ICloudDeviceService.d.ts +4 -0
  33. package/dist/device/cloud/interfaces/IConnectionService.d.ts +7 -0
  34. package/dist/device/cloud/interfaces/IDeviceConnectionService.d.ts +7 -0
  35. package/dist/device/cloud/interfaces/IDeviceFactory.d.ts +4 -0
  36. package/dist/device/cloud/interfaces/IDeviceService.d.ts +8 -0
  37. package/dist/device/cloud/interfaces/IDevicesService.d.ts +9 -0
  38. package/dist/device/cloud/interfaces/IHubService.d.ts +5 -0
  39. package/dist/device/cloud/interfaces/IRawDataTransformer.d.ts +4 -0
  40. package/dist/device/cloud/interfaces/IRawDevice.d.ts +17 -0
  41. package/dist/device/cloud/interfaces/index.d.ts +5 -0
  42. package/dist/device/cloud/services/CloudDevice.service.d.ts +5 -0
  43. package/dist/device/cloud/services/Connection.service.d.ts +8 -0
  44. package/dist/device/cloud/services/Device.service.d.ts +39 -0
  45. package/dist/device/cloud/services/DeviceCloudService.d.ts +42 -0
  46. package/dist/device/cloud/services/DeviceHub.service.d.ts +3 -0
  47. package/dist/device/cloud/services/Hub.service.d.ts +25 -0
  48. package/dist/device/cloud/services/SmartThingsDeviceService.d.ts +38 -0
  49. package/dist/device/cloud/services/SmartThingsDeviceService.js +52 -0
  50. package/dist/device/cloud/services/index.d.ts +2 -0
  51. package/dist/device/cloud/types.d.ts +52 -0
  52. package/dist/device/cloud/types.js +15 -0
  53. package/dist/device/index.d.ts +4 -0
  54. package/dist/device/local/entities/AlertBuilder.d.ts +87 -0
  55. package/dist/device/local/entities/AlertBuilder.example.d.ts +11 -0
  56. package/dist/device/local/entities/IssueBuilder.d.ts +109 -0
  57. package/dist/device/local/entities/IssueBuilder.example.d.ts +16 -0
  58. package/dist/device/local/entities/IssueBuilder.example.js +196 -0
  59. package/dist/device/local/entities/IssueBuilder.js +237 -0
  60. package/dist/device/local/entities/index.d.ts +2 -0
  61. package/dist/device/local/events/EventHandler.d.ts +11 -0
  62. package/dist/device/local/events/Events.d.ts +54 -0
  63. package/dist/device/local/events/index.d.ts +2 -0
  64. package/dist/device/local/handler/EventHandler.d.ts +7 -0
  65. package/dist/device/local/interface.d.ts +0 -0
  66. package/dist/device/local/interfaces/IConnection.d.ts +26 -0
  67. package/dist/device/local/interfaces/IDevice.d.ts +68 -0
  68. package/dist/device/local/interfaces/IDtDevice.d.ts +16 -0
  69. package/dist/device/local/interfaces/IHub.d.ts +46 -0
  70. package/dist/device/local/interfaces/IProperty.d.ts +29 -0
  71. package/dist/device/local/interfaces/ISchedule.d.ts +25 -0
  72. package/dist/device/local/interfaces/index.d.ts +3 -0
  73. package/dist/device/local/models/Alert.model.d.ts +28 -0
  74. package/dist/device/local/models/Issue.model.d.ts +28 -0
  75. package/dist/device/local/repository/Alert.repository.d.ts +106 -0
  76. package/dist/device/local/repository/Connection.repository.d.ts +8 -0
  77. package/dist/device/local/repository/Device.repository.d.ts +30 -0
  78. package/dist/device/local/repository/Hub.repository.d.ts +13 -0
  79. package/dist/device/local/repository/Issue.repository.d.ts +113 -0
  80. package/dist/device/local/repository/Property.repository.d.ts +8 -0
  81. package/dist/device/local/repository/Property.repository.js +95 -0
  82. package/dist/device/local/repository/Schedule.repository.d.ts +9 -0
  83. package/dist/device/local/repository/Schedule.repository.js +109 -0
  84. package/dist/device/local/services/Alert.service.d.ts +137 -0
  85. package/dist/device/local/services/AlertService.example.d.ts +55 -0
  86. package/dist/device/local/services/Connection.service.d.ts +8 -0
  87. package/dist/device/local/services/Device.service.d.ts +40 -0
  88. package/dist/device/local/services/DeviceHub.service.d.ts +11 -0
  89. package/dist/device/local/services/Hub.service.d.ts +12 -0
  90. package/dist/device/local/services/Issue.service.d.ts +168 -0
  91. package/dist/device/local/services/Issue.service.js +642 -0
  92. package/dist/device/local/services/IssueService.example.d.ts +68 -0
  93. package/dist/device/local/services/IssueService.example.js +177 -0
  94. package/dist/device/local/services/Property.service.d.ts +8 -0
  95. package/dist/device/local/services/Property.service.js +36 -0
  96. package/dist/device/local/services/Schedule.service.d.ts +9 -0
  97. package/dist/device/local/services/Schedule.service.js +26 -0
  98. package/dist/device/local/services/index.d.ts +3 -0
  99. package/dist/entities/accessGroup/AccessGroup.repository.d.ts +5 -0
  100. package/dist/entities/accessGroup/AccessGroup.service.d.ts +5 -0
  101. package/dist/entities/accessGroup/IAccessGroup.d.ts +14 -0
  102. package/dist/entities/accessGroup/index.d.ts +2 -0
  103. package/dist/entities/device/local/repository/DeviceProfile.repository.d.ts +5 -0
  104. package/dist/entities/guest/Guest.repository.d.ts +6 -0
  105. package/dist/entities/guest/Guest.service.d.ts +6 -0
  106. package/dist/entities/guest/IGuest.d.ts +12 -0
  107. package/dist/entities/guest/index.d.ts +2 -0
  108. package/dist/entities/schedules/ISchedule.d.ts +14 -0
  109. package/dist/entities/schedules/Schedule.repository.d.ts +6 -0
  110. package/dist/entities/schedules/Schedule.repository.js +74 -0
  111. package/dist/entities/schedules/Schedule.service.d.ts +6 -0
  112. package/dist/entities/schedules/Schedule.service.js +104 -0
  113. package/dist/entities/schedules/index.d.ts +2 -0
  114. package/dist/entities/user/IUser.d.ts +15 -0
  115. package/dist/entities/user/IUser.js +2 -0
  116. package/dist/entities/user/User.repository.d.ts +5 -0
  117. package/dist/entities/user/User.repository.js +68 -0
  118. package/dist/entities/user/User.service.d.ts +6 -0
  119. package/dist/entities/user/User.service.js +103 -0
  120. package/dist/entities/zone/IZone.d.ts +10 -0
  121. package/dist/entities/zone/IZone.js +2 -0
  122. package/dist/entities/zone/Zone.repository.d.ts +6 -0
  123. package/dist/entities/zone/Zone.repository.js +77 -0
  124. package/dist/entities/zone/Zone.service.d.ts +6 -0
  125. package/dist/entities/zone/Zone.service.js +104 -0
  126. package/dist/entities/zone/index.d.ts +2 -0
  127. package/dist/index.d.ts +1 -0
  128. package/dist/index.js +2 -0
  129. package/dist/issues/IssueBuilder.example.d.ts +16 -0
  130. package/dist/issues/IssueBuilder.example.js +196 -0
  131. package/dist/issues/IssueService.example.d.ts +68 -0
  132. package/dist/issues/IssueService.example.js +292 -0
  133. package/dist/pms/IPms.d.ts +6 -0
  134. package/dist/pms/index.d.ts +1 -0
  135. package/dist/pms/webhookQueue/examples/index.d.ts +2 -0
  136. package/dist/pms/webhookQueue/examples/pms-integration.d.ts +65 -0
  137. package/dist/pms/webhookQueue/examples/pms-integration.js +254 -0
  138. package/dist/pms/webhookQueue/examples/usage.d.ts +7 -0
  139. package/dist/pms/webhookQueue/examples/usage.js +175 -0
  140. package/dist/pms/webhookQueue/index.d.ts +3 -0
  141. package/dist/pms/webhookQueue/interfaces/IWebhookQueue.d.ts +33 -0
  142. package/dist/pms/webhookQueue/interfaces/IWebhookQueue.js +2 -0
  143. package/dist/pms/webhookQueue/interfaces/IWebhookWorker.d.ts +38 -0
  144. package/dist/pms/webhookQueue/interfaces/IWebhookWorker.js +2 -0
  145. package/dist/pms/webhookQueue/interfaces/index.d.ts +1 -0
  146. package/dist/pms/webhookQueue/services/WebhookQueueFactory.d.ts +38 -0
  147. package/dist/pms/webhookQueue/services/WebhookQueueFactory.js +131 -0
  148. package/dist/pms/webhookQueue/services/WebhookQueueIntegration.d.ts +70 -0
  149. package/dist/pms/webhookQueue/services/WebhookQueueIntegration.js +207 -0
  150. package/dist/pms/webhookQueue/services/WebhookQueueService.d.ts +45 -0
  151. package/dist/pms/webhookQueue/services/WebhookQueueService.js +270 -0
  152. package/dist/pms/webhookQueue/services/WebhookWorker.d.ts +37 -0
  153. package/dist/pms/webhookQueue/services/WebhookWorker.js +201 -0
  154. package/dist/pms/webhookQueue/services/index.d.ts +1 -0
  155. package/dist/pms/webhookQueue/types/index.d.ts +1 -0
  156. package/dist/pms/webhookQueue/types/webhook.types.d.ts +39 -0
  157. package/dist/pms/webhookQueue/types/webhook.types.js +2 -0
  158. package/dist/property/IProperty.d.ts +29 -0
  159. package/dist/property/Property.repository.d.ts +8 -0
  160. package/dist/property/Property.repository.js +109 -0
  161. package/dist/property/Property.service.d.ts +8 -0
  162. package/dist/property/Property.service.js +124 -0
  163. package/dist/property/index.d.ts +2 -0
  164. package/dist/queue/interfaces/IHttpRequestJob.d.ts +9 -0
  165. package/dist/types/alert.types.d.ts +57 -0
  166. package/dist/types/config.types.d.ts +19 -0
  167. package/dist/types/index.d.ts +3 -0
  168. package/dist/types/issue.types.d.ts +90 -0
  169. package/dist/types/issue.types.js +40 -0
  170. package/dist/utils/http-utils.d.ts +13 -0
  171. package/dist/webhooks/index.d.ts +1 -0
  172. package/dist/webhooks/index.js +17 -0
  173. package/dist/webhooks/interface/webhook.interface.d.ts +32 -0
  174. package/dist/webhooks/interface/webhook.interface.js +2 -0
  175. package/dist/webhooks/webhook.repository.d.ts +6 -0
  176. package/dist/webhooks/webhook.repository.js +74 -0
  177. package/dist/webhooks/webhook.service.d.ts +11 -0
  178. package/dist/webhooks/webhook.service.js +141 -0
  179. package/package.json +2 -1
@@ -0,0 +1,39 @@
1
+ import { IDeviceService } from "../interfaces";
2
+ import { IConnection, IDevice } from "../types";
3
+ export declare abstract class DeviceService implements IDeviceService {
4
+ deviceId: string;
5
+ propertyId: string;
6
+ name: string;
7
+ hubId: string[];
8
+ deviceType: {
9
+ id: string;
10
+ type: string;
11
+ };
12
+ status: {
13
+ online: boolean;
14
+ error?: {
15
+ type?: string;
16
+ message?: string;
17
+ };
18
+ lastUpdated?: string;
19
+ };
20
+ state?: Record<string, any>;
21
+ metaData?: Record<string, any>;
22
+ zone?: {
23
+ id: string;
24
+ name: string;
25
+ zoneType: string;
26
+ parentZone?: {
27
+ id: string;
28
+ name: string;
29
+ zoneType: string;
30
+ };
31
+ };
32
+ connection: IConnection;
33
+ constructor(device: IDevice);
34
+ abstract getDevices(connection: IConnection): Promise<Record<string, any>[]>;
35
+ abstract getDevice(connectionId: string, deviceId: string): Promise<any>;
36
+ abstract getBattery(deviceId: string): Promise<number | string>;
37
+ abstract getStatus(connectionId: string, deviceId: string): Promise<string>;
38
+ abstract getState(deviceId: string): Promise<string>;
39
+ }
@@ -0,0 +1,42 @@
1
+ import { IDeviceCloudService } from "../interface";
2
+ import { IConnection, IDevice, IDeviceAccountResponse, IConnectionConnectParams } from "../types";
3
+ /**
4
+ * Device Cloud Service Class
5
+ * Implements IDeviceCloudService interface with empty implementations
6
+ * Implementation will be provided by the consuming project
7
+ */
8
+ export declare class DeviceCloudService implements IDeviceCloudService {
9
+ /**
10
+ * Creates a new connection for device management
11
+ * @param data - Connection data
12
+ * @param userId - User identifier
13
+ * @returns Promise with connection result
14
+ */
15
+ createConnection(data: IConnection, userId: string): Promise<any>;
16
+ /**
17
+ * Gets device account information for a connection
18
+ * @param connection - Connection object
19
+ * @returns Promise with device account response
20
+ */
21
+ getDeviceAccount(connection: IConnection): Promise<IDeviceAccountResponse>;
22
+ /**
23
+ * Gets all devices for a connection
24
+ * @param connection - Connection object
25
+ * @returns Promise with array of devices
26
+ */
27
+ getDevices(connection: IConnection): Promise<IDevice[]>;
28
+ /**
29
+ * Filters devices based on connection and device list
30
+ * @param connection - Connection object
31
+ * @param devices - Array of devices to filter
32
+ * @returns Promise with filtered devices
33
+ */
34
+ filterDevices(connection: IConnection, devices: any[]): Promise<IDevice[]>;
35
+ /**
36
+ * Connects to a device service
37
+ * @param connection - Connection object
38
+ * @param connectionConnect - Connection parameters
39
+ * @returns Promise with connection result
40
+ */
41
+ connect(connection: IConnection, connectionConnect: IConnectionConnectParams): Promise<any>;
42
+ }
@@ -0,0 +1,3 @@
1
+ export declare abstract class DeviceHubService {
2
+ abstract getHubs(): Promise<any>;
3
+ }
@@ -0,0 +1,25 @@
1
+ import { IHubService } from "../interfaces";
2
+ import { IConnection, IDevice } from "../types";
3
+ export declare abstract class HubService implements IHubService {
4
+ deviceId: string;
5
+ propertyId: string;
6
+ name: string;
7
+ deviceType: {
8
+ id: string;
9
+ type: string;
10
+ };
11
+ status: {
12
+ online: boolean;
13
+ error?: {
14
+ type?: string;
15
+ message?: string;
16
+ };
17
+ lastUpdated?: string;
18
+ };
19
+ metaData?: Record<string, any>;
20
+ connection: IConnection;
21
+ constructor(hub: IDevice);
22
+ abstract getHubs(connectionId: string): Promise<any[] | null>;
23
+ abstract getHub(connectionId: string, hubId: string): Promise<Record<string, any>>;
24
+ abstract getStatus(connectionId: string, hubId: string): Promise<string>;
25
+ }
@@ -0,0 +1,38 @@
1
+ import { ISmartthingsDeviceCommandManager } from "../interface";
2
+ import { IDeviceCommand, ISmartthingsDeviceCommand, ICommandResponse } from "../types";
3
+ /**
4
+ * SmartThings Device Service Class
5
+ * Implements ISmartthingsDeviceCommandManager interface with empty implementations
6
+ * Implementation will be provided by the consuming project
7
+ */
8
+ export declare class SmartThingsDeviceService implements ISmartthingsDeviceCommandManager {
9
+ /**
10
+ * Invokes a command on a device
11
+ * @param command - Device command to execute
12
+ * @param deviceId - Device identifier
13
+ * @returns Promise with command response
14
+ */
15
+ invokeCommand(command: IDeviceCommand, deviceId: string): Promise<ICommandResponse>;
16
+ /**
17
+ * Performs device action for SmartThings
18
+ * @param commands - Array of SmartThings device commands
19
+ * @param deviceId - Device identifier
20
+ * @param accessToken - Access token for authentication
21
+ * @returns Promise with action result
22
+ */
23
+ performDeviceAction(commands: ISmartthingsDeviceCommand[], deviceId: string, accessToken: string): Promise<any>;
24
+ /**
25
+ * Gets device status for SmartThings
26
+ * @param deviceId - Device identifier
27
+ * @param accessToken - Access token for authentication
28
+ * @returns Promise with device status
29
+ */
30
+ getDeviceStatus(deviceId: string, accessToken: string): Promise<any>;
31
+ /**
32
+ * Gets device lock status for SmartThings
33
+ * @param deviceId - Device identifier
34
+ * @param accessToken - Access token for authentication
35
+ * @returns Promise with lock status
36
+ */
37
+ getDeviceLockStatus(deviceId: string, accessToken: string): Promise<any>;
38
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SmartThingsDeviceService = void 0;
4
+ /**
5
+ * SmartThings Device Service Class
6
+ * Implements ISmartthingsDeviceCommandManager interface with empty implementations
7
+ * Implementation will be provided by the consuming project
8
+ */
9
+ class SmartThingsDeviceService {
10
+ /**
11
+ * Invokes a command on a device
12
+ * @param command - Device command to execute
13
+ * @param deviceId - Device identifier
14
+ * @returns Promise with command response
15
+ */
16
+ async invokeCommand(command, deviceId) {
17
+ // Implementation will be provided by the consuming project
18
+ throw new Error("invokeCommand method not implemented");
19
+ }
20
+ /**
21
+ * Performs device action for SmartThings
22
+ * @param commands - Array of SmartThings device commands
23
+ * @param deviceId - Device identifier
24
+ * @param accessToken - Access token for authentication
25
+ * @returns Promise with action result
26
+ */
27
+ async performDeviceAction(commands, deviceId, accessToken) {
28
+ // Implementation will be provided by the consuming project
29
+ throw new Error("performDeviceAction method not implemented");
30
+ }
31
+ /**
32
+ * Gets device status for SmartThings
33
+ * @param deviceId - Device identifier
34
+ * @param accessToken - Access token for authentication
35
+ * @returns Promise with device status
36
+ */
37
+ async getDeviceStatus(deviceId, accessToken) {
38
+ // Implementation will be provided by the consuming project
39
+ throw new Error("getDeviceStatus method not implemented");
40
+ }
41
+ /**
42
+ * Gets device lock status for SmartThings
43
+ * @param deviceId - Device identifier
44
+ * @param accessToken - Access token for authentication
45
+ * @returns Promise with lock status
46
+ */
47
+ async getDeviceLockStatus(deviceId, accessToken) {
48
+ // Implementation will be provided by the consuming project
49
+ throw new Error("getDeviceLockStatus method not implemented");
50
+ }
51
+ }
52
+ exports.SmartThingsDeviceService = SmartThingsDeviceService;
@@ -0,0 +1,2 @@
1
+ export * from "./CloudDevice.service";
2
+ export * from "./Connection.service";
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Represents a connection to a device provider.
3
+ * WARNING: Do not log or expose sensitive fields (accessToken, clientSecret).
4
+ */
5
+ export interface IConnection {
6
+ id?: string;
7
+ createdAt?: Date;
8
+ updatedAt?: Date;
9
+ isDeleted?: boolean;
10
+ connectionName: string;
11
+ connectionRefId: string;
12
+ propertyId: string;
13
+ connectionProvider: ConnectionProvider;
14
+ accessToken?: string;
15
+ refreshToken?: string;
16
+ clientId?: string;
17
+ clientSecret: string;
18
+ isActive?: boolean;
19
+ metaData?: any;
20
+ }
21
+ export interface IConnectionPagination {
22
+ page: number;
23
+ limit: number;
24
+ }
25
+ /**
26
+ * Device account response from provider.
27
+ * WARNING: Do not log or expose connection_access_token.
28
+ */
29
+ export interface IDeviceAccountResponse {
30
+ id: string;
31
+ connection_name: string;
32
+ connection_access_token: string;
33
+ connection_provider: string;
34
+ totalDevices: number;
35
+ connection_ref_id: string;
36
+ isActive: boolean;
37
+ }
38
+ export interface IConnectionConnectParams {
39
+ code?: string;
40
+ propertyId?: string;
41
+ [key: string]: unknown;
42
+ }
43
+ export declare enum ConnectionProvider {
44
+ Smartthings = "Smartthings",
45
+ SaltoKS = "SaltoKS",
46
+ TTLock = "TTLock",
47
+ Tuya = "Tuya",
48
+ Schlage = "Schlage",
49
+ YaleWifi = "YaleWifi",
50
+ Sensibo = "Sensibo",
51
+ Devicethread = "Devicethread"
52
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ // Device Cloud Type Interfaces for DeviceThread Common Library
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ConnectionProvider = void 0;
5
+ var ConnectionProvider;
6
+ (function (ConnectionProvider) {
7
+ ConnectionProvider["Smartthings"] = "Smartthings";
8
+ ConnectionProvider["SaltoKS"] = "SaltoKS";
9
+ ConnectionProvider["TTLock"] = "TTLock";
10
+ ConnectionProvider["Tuya"] = "Tuya";
11
+ ConnectionProvider["Schlage"] = "Schlage";
12
+ ConnectionProvider["YaleWifi"] = "YaleWifi";
13
+ ConnectionProvider["Sensibo"] = "Sensibo";
14
+ ConnectionProvider["Devicethread"] = "Devicethread";
15
+ })(ConnectionProvider || (exports.ConnectionProvider = ConnectionProvider = {}));
@@ -0,0 +1,4 @@
1
+ export * from "./cloud/interface";
2
+ export * from "./cloud/types";
3
+ export type { IConnection, IConnectionConnectParams, IDevice, IDeviceAccountResponse, } from "./cloud/types";
4
+ export type { IDeviceCloudService } from "./cloud/interface";
@@ -0,0 +1,87 @@
1
+ import { CreateAlertData, AlertCategory, AlertSeverity, EntityType } from "../../../types/alert.types";
2
+ /**
3
+ * AlertBuilder - A builder pattern implementation for constructing CreateAlertData objects
4
+ *
5
+ * This builder provides a fluent interface for creating alert data with proper validation
6
+ * and default values. It follows the Builder pattern which is a standard design pattern
7
+ * in TypeScript for constructing complex objects.
8
+ *
9
+ * Usage example:
10
+ * const alertData = new AlertBuilder()
11
+ * .setCategory(AlertCategory.OPERATIONS)
12
+ * .setPropertyId("prop123")
13
+ * .setTitle("Device Offline")
14
+ * .setDescription("Device has been offline for more than 5 minutes")
15
+ * .setEntityId("device456")
16
+ * .setEntityType(EntityType.DEVICE)
17
+ * .setSeverity(AlertSeverity.HIGH)
18
+ * .setCreatedBy("user789")
19
+ * .build();
20
+ */
21
+ export declare class AlertBuilder {
22
+ private data;
23
+ /**
24
+ * Sets the alert category
25
+ */
26
+ setCategory(category: AlertCategory): AlertBuilder;
27
+ /**
28
+ * Sets the property ID
29
+ */
30
+ setPropertyId(propertyId: string): AlertBuilder;
31
+ /**
32
+ * Sets the alert title
33
+ */
34
+ setTitle(title: string): AlertBuilder;
35
+ /**
36
+ * Sets the alert description
37
+ */
38
+ setDescription(description: string): AlertBuilder;
39
+ /**
40
+ * Sets the entity ID (optional)
41
+ */
42
+ setEntityId(entityId?: string): AlertBuilder;
43
+ /**
44
+ * Sets the entity type
45
+ */
46
+ setEntityType(entityType: EntityType): AlertBuilder;
47
+ /**
48
+ * Sets the alert severity (optional, defaults to MEDIUM)
49
+ */
50
+ setSeverity(severity?: AlertSeverity): AlertBuilder;
51
+ /**
52
+ * Sets the user who created the alert (optional)
53
+ */
54
+ setCreatedBy(createdBy?: string): AlertBuilder;
55
+ /**
56
+ * Sets the snooze until date (optional)
57
+ */
58
+ setSnoozeUntil(snoozeUntil?: Date): AlertBuilder;
59
+ /**
60
+ * Validates that all required fields are present
61
+ */
62
+ private validate;
63
+ /**
64
+ * Builds and returns the CreateAlertData object
65
+ * @throws Error if required fields are missing
66
+ */
67
+ build(): CreateAlertData;
68
+ /**
69
+ * Resets the builder to its initial state
70
+ */
71
+ reset(): AlertBuilder;
72
+ /**
73
+ * Creates a new builder instance with predefined values for common alert types
74
+ */
75
+ static createReadinessAlert(): AlertBuilder;
76
+ static createOperationsAlert(): AlertBuilder;
77
+ static createSecurityAlert(): AlertBuilder;
78
+ static createEnergyAlert(): AlertBuilder;
79
+ /**
80
+ * Creates a device-specific alert builder
81
+ */
82
+ static createDeviceAlert(deviceId: string, propertyId: string): AlertBuilder;
83
+ /**
84
+ * Creates a hub-specific alert builder
85
+ */
86
+ static createHubAlert(hubId: string, propertyId: string): AlertBuilder;
87
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Example usage of AlertBuilder
3
+ * This file demonstrates various ways to use the AlertBuilder pattern
4
+ */
5
+ export declare function createBasicAlert(): import("../../../types/alert.types").CreateAlertData;
6
+ export declare function createDeviceAlert(): import("../../../types/alert.types").CreateAlertData;
7
+ export declare function createSecurityAlert(): import("../../../types/alert.types").CreateAlertData;
8
+ export declare function createEnergyAlert(): import("../../../types/alert.types").CreateAlertData;
9
+ export declare function createHubAlert(): import("../../../types/alert.types").CreateAlertData;
10
+ export declare function createSnoozedAlert(): import("../../../types/alert.types").CreateAlertData;
11
+ export declare function createMultipleAlerts(): import("../../../types/alert.types").CreateAlertData[];
@@ -0,0 +1,109 @@
1
+ import { CreateIssueData, IssuesCategory, IssuePriority, EntityType } from "../../../types/issue.types";
2
+ /**
3
+ * IssueBuilder - A builder pattern implementation for constructing CreateIssueData objects
4
+ *
5
+ * This builder provides a fluent interface for creating issue data with proper validation
6
+ * and default values. It follows the Builder pattern which is a standard design pattern
7
+ * in TypeScript for constructing complex objects.
8
+ *
9
+ * Usage example:
10
+ * const issueData = new IssueBuilder()
11
+ * .setCategory(IssuesCategory.OPERATIONS)
12
+ * .setPropertyId("prop123")
13
+ * .setTitle("Device Maintenance Required")
14
+ * .setDescription("Device requires scheduled maintenance")
15
+ * .setEntityId("device456")
16
+ * .setEntityType(EntityType.DEVICE)
17
+ * .setPriority(IssuePriority.HIGH)
18
+ * .setAssignedTo("tech789")
19
+ * .setCreatedBy("user123")
20
+ * .setDueDate(new Date("2024-01-15"))
21
+ * .build();
22
+ */
23
+ export declare class IssueBuilder {
24
+ private data;
25
+ /**
26
+ * Sets the issue category
27
+ */
28
+ setCategory(category: IssuesCategory): IssueBuilder;
29
+ /**
30
+ * Sets the property ID
31
+ */
32
+ setPropertyId(propertyId: string): IssueBuilder;
33
+ /**
34
+ * Sets the issue title
35
+ */
36
+ setTitle(title: string): IssueBuilder;
37
+ /**
38
+ * Sets the issue description
39
+ */
40
+ setDescription(description: string): IssueBuilder;
41
+ /**
42
+ * Sets the entity ID (optional)
43
+ */
44
+ setEntityId(entityId?: string): IssueBuilder;
45
+ /**
46
+ * Sets the entity type
47
+ */
48
+ setEntityType(entityType: EntityType): IssueBuilder;
49
+ /**
50
+ * Sets the issue priority (optional, defaults to MEDIUM)
51
+ */
52
+ setPriority(priority?: IssuePriority): IssueBuilder;
53
+ /**
54
+ * Sets the user assigned to the issue (optional)
55
+ */
56
+ setAssignedTo(assignedTo?: string): IssueBuilder;
57
+ /**
58
+ * Sets the user who created the issue (required)
59
+ */
60
+ setCreatedBy(createdBy: string): IssueBuilder;
61
+ /**
62
+ * Sets the due date (optional)
63
+ */
64
+ setDueDate(dueDate?: Date): IssueBuilder;
65
+ /**
66
+ * Validates that all required fields are present
67
+ */
68
+ private validate;
69
+ /**
70
+ * Builds and returns the CreateIssueData object
71
+ * @throws Error if required fields are missing
72
+ */
73
+ build(): CreateIssueData;
74
+ /**
75
+ * Resets the builder to its initial state
76
+ */
77
+ reset(): IssueBuilder;
78
+ /**
79
+ * Creates a new builder instance with predefined values for common issue types
80
+ */
81
+ static createReadinessIssue(): IssueBuilder;
82
+ static createOperationsIssue(): IssueBuilder;
83
+ static createSecurityIssue(): IssueBuilder;
84
+ static createEnergyIssue(): IssueBuilder;
85
+ /**
86
+ * Creates a device-specific issue builder
87
+ */
88
+ static createDeviceIssue(deviceId: string, propertyId: string): IssueBuilder;
89
+ /**
90
+ * Creates a hub-specific issue builder
91
+ */
92
+ static createHubIssue(hubId: string, propertyId: string): IssueBuilder;
93
+ /**
94
+ * Creates a user-specific issue builder
95
+ */
96
+ static createUserIssue(userId: string, propertyId: string): IssueBuilder;
97
+ /**
98
+ * Creates a property-specific issue builder
99
+ */
100
+ static createPropertyIssue(propertyId: string): IssueBuilder;
101
+ /**
102
+ * Creates a maintenance issue builder
103
+ */
104
+ static createMaintenanceIssue(propertyId: string, entityId?: string, entityType?: EntityType): IssueBuilder;
105
+ /**
106
+ * Creates an urgent issue builder
107
+ */
108
+ static createUrgentIssue(propertyId: string, entityId?: string, entityType?: EntityType): IssueBuilder;
109
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Example usage of IssueBuilder
3
+ * This file demonstrates various ways to use the IssueBuilder pattern
4
+ */
5
+ export declare function createBasicIssue(): import("../../../types/issue.types").CreateIssueData;
6
+ export declare function createDeviceIssue(): import("../../../types/issue.types").CreateIssueData;
7
+ export declare function createSecurityIssue(): import("../../../types/issue.types").CreateIssueData;
8
+ export declare function createEnergyIssue(): import("../../../types/issue.types").CreateIssueData;
9
+ export declare function createHubIssue(): import("../../../types/issue.types").CreateIssueData;
10
+ export declare function createUserIssue(): import("../../../types/issue.types").CreateIssueData;
11
+ export declare function createPropertyIssue(): import("../../../types/issue.types").CreateIssueData;
12
+ export declare function createMaintenanceIssue(): import("../../../types/issue.types").CreateIssueData;
13
+ export declare function createUrgentIssue(): import("../../../types/issue.types").CreateIssueData;
14
+ export declare function createMultipleIssues(): import("../../../types/issue.types").CreateIssueData[];
15
+ export declare function createIssueWithDueDate(): import("../../../types/issue.types").CreateIssueData;
16
+ export declare function createUnassignedIssue(): import("../../../types/issue.types").CreateIssueData;