dt-common-device 8.0.5 → 8.0.7

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 (225) hide show
  1. package/dist/admin/Admin.repository.d.ts +7 -0
  2. package/dist/admin/Admin.repository.js +182 -0
  3. package/dist/admin/Admin.service.d.ts +5 -0
  4. package/dist/admin/Admin.service.js +17 -0
  5. package/dist/admin/index.d.ts +1 -0
  6. package/dist/admin/index.js +17 -0
  7. package/dist/audit/AuditProperties.d.ts +16 -0
  8. package/dist/audit/AuditProperties.js +2 -0
  9. package/dist/chronicle/Cronicle.service.d.ts +2 -6
  10. package/dist/chronicle/Cronicle.service.js +2 -19
  11. package/dist/chronicle/IChronicle.interface.d.ts +14 -0
  12. package/dist/chronicle/IChronicle.interface.js +2 -0
  13. package/dist/chronicle/ICronicle.interface.d.ts +0 -1
  14. package/dist/chronicle/chronicle.service.d.ts +4 -0
  15. package/dist/chronicle/chronicle.service.js +44 -0
  16. package/dist/connection/Connection.repository.d.ts +8 -0
  17. package/dist/connection/Connection.repository.js +92 -0
  18. package/dist/connection/Connection.service.d.ts +8 -0
  19. package/dist/connection/Connection.service.js +32 -0
  20. package/dist/connection/IConnection.d.ts +28 -0
  21. package/dist/connection/IConnection.js +16 -0
  22. package/dist/connection/index.d.ts +2 -0
  23. package/dist/connection/index.js +18 -0
  24. package/dist/device/cloud/entities/CloudConnection.d.ts +6 -0
  25. package/dist/device/cloud/entities/CloudConnection.js +6 -0
  26. package/dist/device/cloud/entities/CloudDevice.d.ts +16 -0
  27. package/dist/device/cloud/entities/CloudDevice.js +26 -0
  28. package/dist/device/cloud/entities/CloudDeviceService.d.ts +5 -0
  29. package/dist/device/cloud/entities/CloudDeviceService.js +9 -0
  30. package/dist/device/cloud/entities/DeviceFactory.d.ts +7 -0
  31. package/dist/device/cloud/entities/DeviceFactory.js +80 -0
  32. package/dist/device/cloud/entities/index.d.ts +3 -0
  33. package/dist/device/cloud/entities/index.js +19 -0
  34. package/dist/device/cloud/interface.d.ts +101 -0
  35. package/dist/device/cloud/interface.js +3 -0
  36. package/dist/device/cloud/interfaces/ICloudConnection.d.ts +5 -0
  37. package/dist/device/cloud/interfaces/ICloudConnection.js +2 -0
  38. package/dist/device/cloud/interfaces/ICloudDevice.d.ts +9 -0
  39. package/dist/device/cloud/interfaces/ICloudDevice.js +2 -0
  40. package/dist/device/cloud/interfaces/ICloudDeviceService.d.ts +4 -0
  41. package/dist/device/cloud/interfaces/ICloudDeviceService.js +2 -0
  42. package/dist/device/cloud/interfaces/IConnectionService.d.ts +7 -0
  43. package/dist/device/cloud/interfaces/IConnectionService.js +2 -0
  44. package/dist/device/cloud/interfaces/IDeviceConnectionService.d.ts +7 -0
  45. package/dist/device/cloud/interfaces/IDeviceConnectionService.js +3 -0
  46. package/dist/device/cloud/interfaces/IDeviceFactory.d.ts +4 -0
  47. package/dist/device/cloud/interfaces/IDeviceFactory.js +2 -0
  48. package/dist/device/cloud/interfaces/IDeviceService.d.ts +8 -0
  49. package/dist/device/cloud/interfaces/IDeviceService.js +2 -0
  50. package/dist/device/cloud/interfaces/IDevicesService.d.ts +9 -0
  51. package/dist/device/cloud/interfaces/IDevicesService.js +2 -0
  52. package/dist/device/cloud/interfaces/IHubService.d.ts +5 -0
  53. package/dist/device/cloud/interfaces/IHubService.js +2 -0
  54. package/dist/device/cloud/interfaces/IRawDataTransformer.d.ts +4 -0
  55. package/dist/device/cloud/interfaces/IRawDataTransformer.js +2 -0
  56. package/dist/device/cloud/interfaces/IRawDevice.d.ts +17 -0
  57. package/dist/device/cloud/interfaces/IRawDevice.js +11 -0
  58. package/dist/device/cloud/interfaces/index.d.ts +5 -0
  59. package/dist/device/cloud/interfaces/index.js +21 -0
  60. package/dist/device/cloud/services/CloudDevice.service.d.ts +5 -0
  61. package/dist/device/cloud/services/CloudDevice.service.js +9 -0
  62. package/dist/device/cloud/services/Connection.service.d.ts +8 -0
  63. package/dist/device/cloud/services/Connection.service.js +6 -0
  64. package/dist/device/cloud/services/Device.service.d.ts +39 -0
  65. package/dist/device/cloud/services/Device.service.js +9 -0
  66. package/dist/device/cloud/services/DeviceCloudService.d.ts +42 -0
  67. package/dist/device/cloud/services/DeviceCloudService.js +59 -0
  68. package/dist/device/cloud/services/DeviceHub.service.d.ts +3 -0
  69. package/dist/device/cloud/services/DeviceHub.service.js +6 -0
  70. package/dist/device/cloud/services/Hub.service.d.ts +25 -0
  71. package/dist/device/cloud/services/Hub.service.js +9 -0
  72. package/dist/device/cloud/services/SmartThingsDeviceService.d.ts +38 -0
  73. package/dist/device/cloud/services/SmartThingsDeviceService.js +52 -0
  74. package/dist/device/cloud/services/index.d.ts +2 -0
  75. package/dist/device/cloud/services/index.js +18 -0
  76. package/dist/device/cloud/types.d.ts +52 -0
  77. package/dist/device/cloud/types.js +15 -0
  78. package/dist/device/index.d.ts +4 -0
  79. package/dist/device/index.js +20 -0
  80. package/dist/device/local/entities/AlertBuilder.d.ts +87 -0
  81. package/dist/device/local/entities/AlertBuilder.example.d.ts +11 -0
  82. package/dist/device/local/entities/AlertBuilder.example.js +117 -0
  83. package/dist/device/local/entities/AlertBuilder.js +179 -0
  84. package/dist/device/local/entities/IssueBuilder.d.ts +109 -0
  85. package/dist/device/local/entities/IssueBuilder.example.d.ts +16 -0
  86. package/dist/device/local/entities/IssueBuilder.example.js +196 -0
  87. package/dist/device/local/entities/IssueBuilder.js +237 -0
  88. package/dist/device/local/entities/index.d.ts +2 -0
  89. package/dist/device/local/entities/index.js +7 -0
  90. package/dist/device/local/events/EventHandler.d.ts +11 -0
  91. package/dist/device/local/events/EventHandler.js +86 -0
  92. package/dist/device/local/events/Events.d.ts +54 -0
  93. package/dist/device/local/events/Events.js +57 -0
  94. package/dist/device/local/events/index.d.ts +2 -0
  95. package/dist/device/local/events/index.js +7 -0
  96. package/dist/device/local/handler/EventHandler.d.ts +7 -0
  97. package/dist/device/local/handler/EventHandler.js +44 -0
  98. package/dist/device/local/interface.d.ts +0 -0
  99. package/dist/device/local/interface.js +1 -0
  100. package/dist/device/local/interfaces/IConnection.d.ts +26 -0
  101. package/dist/device/local/interfaces/IConnection.js +14 -0
  102. package/dist/device/local/interfaces/IDevice.d.ts +68 -0
  103. package/dist/device/local/interfaces/IDevice.js +10 -0
  104. package/dist/device/local/interfaces/IDtDevice.d.ts +16 -0
  105. package/dist/device/local/interfaces/IDtDevice.js +2 -0
  106. package/dist/device/local/interfaces/IHub.d.ts +46 -0
  107. package/dist/device/local/interfaces/IHub.js +2 -0
  108. package/dist/device/local/interfaces/IProperty.d.ts +29 -0
  109. package/dist/device/local/interfaces/IProperty.js +2 -0
  110. package/dist/device/local/interfaces/ISchedule.d.ts +25 -0
  111. package/dist/device/local/interfaces/ISchedule.js +2 -0
  112. package/dist/device/local/interfaces/index.d.ts +3 -0
  113. package/dist/device/local/interfaces/index.js +19 -0
  114. package/dist/device/local/models/Alert.model.d.ts +28 -0
  115. package/dist/device/local/models/Alert.model.js +222 -0
  116. package/dist/device/local/models/Issue.model.d.ts +28 -0
  117. package/dist/device/local/models/Issue.model.js +260 -0
  118. package/dist/device/local/repository/Alert.repository.d.ts +106 -0
  119. package/dist/device/local/repository/Alert.repository.js +374 -0
  120. package/dist/device/local/repository/Connection.repository.d.ts +8 -0
  121. package/dist/device/local/repository/Connection.repository.js +92 -0
  122. package/dist/device/local/repository/Device.repository.d.ts +30 -0
  123. package/dist/device/local/repository/Device.repository.js +325 -0
  124. package/dist/device/local/repository/Hub.repository.d.ts +13 -0
  125. package/dist/device/local/repository/Hub.repository.js +139 -0
  126. package/dist/device/local/repository/Issue.repository.d.ts +113 -0
  127. package/dist/device/local/repository/Issue.repository.js +401 -0
  128. package/dist/device/local/repository/Property.repository.d.ts +8 -0
  129. package/dist/device/local/repository/Property.repository.js +95 -0
  130. package/dist/device/local/repository/Schedule.repository.d.ts +9 -0
  131. package/dist/device/local/repository/Schedule.repository.js +109 -0
  132. package/dist/device/local/services/Alert.service.d.ts +137 -0
  133. package/dist/device/local/services/Alert.service.js +475 -0
  134. package/dist/device/local/services/AlertService.example.d.ts +55 -0
  135. package/dist/device/local/services/AlertService.example.js +148 -0
  136. package/dist/device/local/services/Connection.service.d.ts +8 -0
  137. package/dist/device/local/services/Connection.service.js +32 -0
  138. package/dist/device/local/services/Device.service.d.ts +40 -0
  139. package/dist/device/local/services/Device.service.js +391 -0
  140. package/dist/device/local/services/DeviceHub.service.d.ts +11 -0
  141. package/dist/device/local/services/DeviceHub.service.js +40 -0
  142. package/dist/device/local/services/Hub.service.d.ts +12 -0
  143. package/dist/device/local/services/Hub.service.js +107 -0
  144. package/dist/device/local/services/Issue.service.d.ts +168 -0
  145. package/dist/device/local/services/Issue.service.js +642 -0
  146. package/dist/device/local/services/IssueService.example.d.ts +68 -0
  147. package/dist/device/local/services/IssueService.example.js +177 -0
  148. package/dist/device/local/services/Property.service.d.ts +8 -0
  149. package/dist/device/local/services/Property.service.js +36 -0
  150. package/dist/device/local/services/Schedule.service.d.ts +9 -0
  151. package/dist/device/local/services/Schedule.service.js +26 -0
  152. package/dist/device/local/services/index.d.ts +3 -0
  153. package/dist/device/local/services/index.js +19 -0
  154. package/dist/entities/accessGroup/AccessGroup.repository.d.ts +1 -2
  155. package/dist/entities/accessGroup/AccessGroup.repository.js +1 -4
  156. package/dist/entities/accessGroup/AccessGroup.service.d.ts +1 -2
  157. package/dist/entities/accessGroup/AccessGroup.service.js +3 -4
  158. package/dist/entities/device/local/interfaces/ISchedule.d.ts +3 -0
  159. package/dist/entities/device/local/services/Device.service.js +6 -2
  160. package/dist/entities/guest/Guest.repository.d.ts +1 -1
  161. package/dist/entities/guest/Guest.repository.js +2 -5
  162. package/dist/entities/guest/Guest.service.d.ts +1 -1
  163. package/dist/entities/guest/Guest.service.js +1 -4
  164. package/dist/entities/schedules/Schedule.repository.d.ts +1 -1
  165. package/dist/entities/schedules/Schedule.repository.js +2 -5
  166. package/dist/entities/schedules/Schedule.service.d.ts +1 -1
  167. package/dist/entities/schedules/Schedule.service.js +1 -4
  168. package/dist/entities/user/User.repository.js +1 -4
  169. package/dist/entities/user/User.service.d.ts +1 -1
  170. package/dist/entities/user/User.service.js +1 -4
  171. package/dist/entities/zone/Zone.service.js +1 -4
  172. package/dist/issues/Issue.service.js +3 -3
  173. package/dist/pms/IPms.d.ts +6 -0
  174. package/dist/pms/IPms.js +10 -0
  175. package/dist/pms/index.d.ts +1 -0
  176. package/dist/pms/index.js +18 -0
  177. package/dist/pms/webhookQueue/examples/index.d.ts +2 -0
  178. package/dist/pms/webhookQueue/examples/index.js +18 -0
  179. package/dist/pms/webhookQueue/examples/pms-integration.d.ts +65 -0
  180. package/dist/pms/webhookQueue/examples/pms-integration.js +254 -0
  181. package/dist/pms/webhookQueue/examples/usage.d.ts +7 -0
  182. package/dist/pms/webhookQueue/examples/usage.js +175 -0
  183. package/dist/pms/webhookQueue/index.d.ts +3 -0
  184. package/dist/pms/webhookQueue/index.js +20 -0
  185. package/dist/pms/webhookQueue/interfaces/IWebhookQueue.d.ts +33 -0
  186. package/dist/pms/webhookQueue/interfaces/IWebhookQueue.js +2 -0
  187. package/dist/pms/webhookQueue/interfaces/IWebhookWorker.d.ts +38 -0
  188. package/dist/pms/webhookQueue/interfaces/IWebhookWorker.js +2 -0
  189. package/dist/pms/webhookQueue/interfaces/index.d.ts +1 -0
  190. package/dist/pms/webhookQueue/interfaces/index.js +17 -0
  191. package/dist/pms/webhookQueue/services/WebhookQueueFactory.d.ts +38 -0
  192. package/dist/pms/webhookQueue/services/WebhookQueueFactory.js +131 -0
  193. package/dist/pms/webhookQueue/services/WebhookQueueIntegration.d.ts +70 -0
  194. package/dist/pms/webhookQueue/services/WebhookQueueIntegration.js +207 -0
  195. package/dist/pms/webhookQueue/services/WebhookQueueService.d.ts +45 -0
  196. package/dist/pms/webhookQueue/services/WebhookQueueService.js +270 -0
  197. package/dist/pms/webhookQueue/services/WebhookWorker.d.ts +37 -0
  198. package/dist/pms/webhookQueue/services/WebhookWorker.js +201 -0
  199. package/dist/pms/webhookQueue/services/index.d.ts +1 -0
  200. package/dist/pms/webhookQueue/services/index.js +17 -0
  201. package/dist/pms/webhookQueue/types/index.d.ts +1 -0
  202. package/dist/pms/webhookQueue/types/index.js +17 -0
  203. package/dist/pms/webhookQueue/types/webhook.types.d.ts +39 -0
  204. package/dist/pms/webhookQueue/types/webhook.types.js +2 -0
  205. package/dist/property/IProperty.d.ts +29 -0
  206. package/dist/property/IProperty.js +2 -0
  207. package/dist/property/Property.repository.d.ts +8 -0
  208. package/dist/property/Property.repository.js +109 -0
  209. package/dist/property/Property.service.d.ts +8 -0
  210. package/dist/property/Property.service.js +124 -0
  211. package/dist/property/index.d.ts +2 -0
  212. package/dist/property/index.js +18 -0
  213. package/dist/queue/interfaces/IHttpRequestJob.d.ts +9 -0
  214. package/dist/queue/interfaces/IHttpRequestJob.js +2 -0
  215. package/dist/types/alert.types.d.ts +57 -0
  216. package/dist/types/alert.types.js +22 -0
  217. package/dist/types/config.types.d.ts +19 -0
  218. package/dist/types/config.types.js +2 -0
  219. package/dist/types/index.d.ts +3 -0
  220. package/dist/types/index.js +19 -0
  221. package/dist/types/issue.types.d.ts +90 -0
  222. package/dist/types/issue.types.js +40 -0
  223. package/dist/utils/http-utils.d.ts +13 -0
  224. package/dist/utils/http-utils.js +117 -0
  225. package/package.json +1 -1
@@ -0,0 +1,68 @@
1
+ import { IssueService } from "./Issue.service";
2
+ /**
3
+ * Example usage of the updated IssueService with IssueBuilder integration
4
+ * This file demonstrates various ways to use the IssueService with the new IssueBuilder
5
+ */
6
+ export declare class IssueServiceExample {
7
+ private readonly issueService;
8
+ constructor(issueService: IssueService);
9
+ /**
10
+ * Example 1: Using the updated createIssue method with IssueBuilder
11
+ */
12
+ createIssueWithBuilder(): Promise<import("../../../types/issue.types").IssueDocument>;
13
+ /**
14
+ * Example 2: Using convenience methods for specific issue types
15
+ */
16
+ createSpecificIssues(): Promise<{
17
+ readinessIssue: import("../../../types/issue.types").IssueDocument;
18
+ operationsIssue: import("../../../types/issue.types").IssueDocument;
19
+ securityIssue: import("../../../types/issue.types").IssueDocument;
20
+ energyIssue: import("../../../types/issue.types").IssueDocument;
21
+ }>;
22
+ /**
23
+ * Example 3: Using device-specific issue methods
24
+ */
25
+ createDeviceIssues(): Promise<{
26
+ deviceIssue1: import("../../../types/issue.types").IssueDocument;
27
+ deviceIssue2: import("../../../types/issue.types").IssueDocument;
28
+ }>;
29
+ /**
30
+ * Example 4: Using hub-specific issue methods
31
+ */
32
+ createHubIssues(): Promise<{
33
+ hubIssue1: import("../../../types/issue.types").IssueDocument;
34
+ hubIssue2: import("../../../types/issue.types").IssueDocument;
35
+ }>;
36
+ /**
37
+ * Example 5: Using user-specific issue methods
38
+ */
39
+ createUserIssues(): Promise<{
40
+ userIssue: import("../../../types/issue.types").IssueDocument;
41
+ }>;
42
+ /**
43
+ * Example 6: Using maintenance and urgent issue methods
44
+ */
45
+ createMaintenanceAndUrgentIssues(): Promise<{
46
+ maintenanceIssue: import("../../../types/issue.types").IssueDocument;
47
+ urgentIssue: import("../../../types/issue.types").IssueDocument;
48
+ }>;
49
+ /**
50
+ * Example 7: Using static factory methods with IssueBuilder
51
+ */
52
+ createIssuesWithStaticMethods(): Promise<{
53
+ issue1: import("../../../types/issue.types").IssueDocument;
54
+ issue2: import("../../../types/issue.types").IssueDocument;
55
+ }>;
56
+ /**
57
+ * Example 8: Creating multiple issues efficiently
58
+ */
59
+ createMultipleIssues(): Promise<import("../../../types/issue.types").IssueDocument[]>;
60
+ /**
61
+ * Example 9: Creating issue with due date calculation
62
+ */
63
+ createIssueWithDueDate(): Promise<import("../../../types/issue.types").IssueDocument>;
64
+ /**
65
+ * Example 10: Backward compatibility - still works with CreateIssueData
66
+ */
67
+ createIssueWithLegacyData(): Promise<import("../../../types/issue.types").IssueDocument>;
68
+ }
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IssueServiceExample = void 0;
4
+ const IssueBuilder_1 = require("../entities/IssueBuilder");
5
+ const issue_types_1 = require("../../../types/issue.types");
6
+ /**
7
+ * Example usage of the updated IssueService with IssueBuilder integration
8
+ * This file demonstrates various ways to use the IssueService with the new IssueBuilder
9
+ */
10
+ class IssueServiceExample {
11
+ constructor(issueService) {
12
+ this.issueService = issueService;
13
+ }
14
+ /**
15
+ * Example 1: Using the updated createIssue method with IssueBuilder
16
+ */
17
+ async createIssueWithBuilder() {
18
+ const issueBuilder = new IssueBuilder_1.IssueBuilder()
19
+ .setCategory(issue_types_1.IssuesCategory.OPERATIONS)
20
+ .setPropertyId("prop123")
21
+ .setTitle("Device Maintenance Required")
22
+ .setDescription("Device requires scheduled maintenance")
23
+ .setEntityId("device456")
24
+ .setEntityType(issue_types_1.EntityType.DEVICE)
25
+ .setPriority(issue_types_1.IssuePriority.HIGH)
26
+ .setAssignedTo("tech789")
27
+ .setCreatedBy("user123")
28
+ .setDueDate(new Date("2024-01-15"));
29
+ // Pass the IssueBuilder directly to createIssue
30
+ const issue = await this.issueService.createIssue(issueBuilder);
31
+ return issue;
32
+ }
33
+ /**
34
+ * Example 2: Using convenience methods for specific issue types
35
+ */
36
+ async createSpecificIssues() {
37
+ // Create a readiness issue
38
+ const readinessIssue = await this.issueService.createReadinessIssue("prop123", "System Maintenance Required", "System maintenance is scheduled for tonight", "admin", "system456", issue_types_1.EntityType.PROPERTY, "maintenance-team", new Date("2024-01-20"));
39
+ // Create an operations issue
40
+ const operationsIssue = await this.issueService.createOperationsIssue("prop123", "Device Temperature High", "Device temperature exceeds normal operating range", "monitor", "device789", issue_types_1.EntityType.DEVICE, "tech-support", new Date("2024-01-10"));
41
+ // Create a security issue
42
+ const securityIssue = await this.issueService.createSecurityIssue("prop123", "Unauthorized Access Attempt", "Multiple failed login attempts detected", "security-system", "user123", issue_types_1.EntityType.USER, "security-team", new Date("2024-01-05"));
43
+ // Create an energy issue
44
+ const energyIssue = await this.issueService.createEnergyIssue("prop123", "High Energy Consumption", "Energy usage is 20% above normal levels", "energy-monitor", "zone456", issue_types_1.EntityType.COLLECTION, "energy-manager", new Date("2024-01-25"));
45
+ return { readinessIssue, operationsIssue, securityIssue, energyIssue };
46
+ }
47
+ /**
48
+ * Example 3: Using device-specific issue methods
49
+ */
50
+ async createDeviceIssues() {
51
+ // Create a device issue with default category and priority
52
+ const deviceIssue1 = await this.issueService.createDeviceIssue("device123", "prop456", "Device Battery Low", "Device battery level is below 20%", "system", undefined, // Use default category
53
+ undefined, // Use default priority
54
+ "maintenance-team", new Date("2024-01-12"));
55
+ // Create a device issue with custom category and priority
56
+ const deviceIssue2 = await this.issueService.createDeviceIssue("device789", "prop456", "Device Firmware Update Available", "New firmware version is available for installation", "firmware-manager", issue_types_1.IssuesCategory.READINESS, issue_types_1.IssuePriority.MEDIUM, "admin", new Date("2024-01-20"));
57
+ return { deviceIssue1, deviceIssue2 };
58
+ }
59
+ /**
60
+ * Example 4: Using hub-specific issue methods
61
+ */
62
+ async createHubIssues() {
63
+ // Create a hub issue with default settings
64
+ const hubIssue1 = await this.issueService.createHubIssue("hub123", "prop456", "Hub Connection Lost", "Hub has lost connection to the network", "network-monitor", undefined, // Use default category
65
+ undefined, // Use default priority
66
+ "network-admin", new Date("2024-01-05"));
67
+ // Create a hub issue with custom settings
68
+ const hubIssue2 = await this.issueService.createHubIssue("hub789", "prop456", "Hub Maintenance Required", "Hub requires scheduled maintenance", "maintenance-system", issue_types_1.IssuesCategory.READINESS, issue_types_1.IssuePriority.LOW, "technician", new Date("2024-01-15"));
69
+ return { hubIssue1, hubIssue2 };
70
+ }
71
+ /**
72
+ * Example 5: Using user-specific issue methods
73
+ */
74
+ async createUserIssues() {
75
+ // Create a user issue
76
+ const userIssue = await this.issueService.createUserIssue("user456", "prop303", "User Access Review Required", "User access permissions need review", "access-control", issue_types_1.IssuesCategory.SECURITY, issue_types_1.IssuePriority.MEDIUM, "hr-admin", new Date("2024-01-30"));
77
+ return { userIssue };
78
+ }
79
+ /**
80
+ * Example 6: Using maintenance and urgent issue methods
81
+ */
82
+ async createMaintenanceAndUrgentIssues() {
83
+ // Create a maintenance issue
84
+ const maintenanceIssue = await this.issueService.createMaintenanceIssue("prop505", "Scheduled Device Maintenance", "Regular maintenance is scheduled for this device", "maintenance-scheduler", "device789", issue_types_1.EntityType.DEVICE, "technician", new Date("2024-01-12"));
85
+ // Create an urgent issue
86
+ const urgentIssue = await this.issueService.createUrgentIssue("prop606", "Critical Hub Failure", "Hub is experiencing critical failures", "monitoring-system", "hub123", issue_types_1.EntityType.HUB, "emergency-tech", new Date("2024-01-03"));
87
+ return { maintenanceIssue, urgentIssue };
88
+ }
89
+ /**
90
+ * Example 7: Using static factory methods with IssueBuilder
91
+ */
92
+ async createIssuesWithStaticMethods() {
93
+ // Create a device issue using static factory method
94
+ const deviceIssue = IssueBuilder_1.IssueBuilder.createDeviceIssue("device123", "prop456")
95
+ .setCategory(issue_types_1.IssuesCategory.OPERATIONS)
96
+ .setTitle("Device Offline")
97
+ .setDescription("Device has been offline for more than 5 minutes")
98
+ .setPriority(issue_types_1.IssuePriority.HIGH)
99
+ .setAssignedTo("tech-support")
100
+ .setCreatedBy("monitor")
101
+ .setDueDate(new Date("2024-01-10"));
102
+ const issue1 = await this.issueService.createIssue(deviceIssue);
103
+ // Create a hub issue using static factory method
104
+ const hubIssue = IssueBuilder_1.IssueBuilder.createHubIssue("hub789", "prop202")
105
+ .setCategory(issue_types_1.IssuesCategory.SECURITY)
106
+ .setTitle("Hub Security Breach")
107
+ .setDescription("Unauthorized access attempt detected on hub")
108
+ .setPriority(issue_types_1.IssuePriority.CRITICAL)
109
+ .setAssignedTo("security-team")
110
+ .setCreatedBy("security-system")
111
+ .setDueDate(new Date("2024-01-05"));
112
+ const issue2 = await this.issueService.createIssue(hubIssue);
113
+ return { issue1, issue2 };
114
+ }
115
+ /**
116
+ * Example 8: Creating multiple issues efficiently
117
+ */
118
+ async createMultipleIssues() {
119
+ const issues = [];
120
+ // Create multiple device issues efficiently
121
+ const deviceIds = ["device1", "device2", "device3"];
122
+ const propertyId = "prop123";
123
+ for (const deviceId of deviceIds) {
124
+ const issueBuilder = IssueBuilder_1.IssueBuilder.createDeviceIssue(deviceId, propertyId)
125
+ .setCategory(issue_types_1.IssuesCategory.OPERATIONS)
126
+ .setTitle(`Device ${deviceId} Status`)
127
+ .setDescription(`Status check for device ${deviceId}`)
128
+ .setPriority(issue_types_1.IssuePriority.MEDIUM)
129
+ .setAssignedTo("batch-processor")
130
+ .setCreatedBy("batch-processor")
131
+ .setDueDate(new Date("2024-01-15"));
132
+ const issue = await this.issueService.createIssue(issueBuilder);
133
+ issues.push(issue);
134
+ }
135
+ return issues;
136
+ }
137
+ /**
138
+ * Example 9: Creating issue with due date calculation
139
+ */
140
+ async createIssueWithDueDate() {
141
+ const dueDate = new Date();
142
+ dueDate.setDate(dueDate.getDate() + 7); // Due in 7 days
143
+ const issueBuilder = new IssueBuilder_1.IssueBuilder()
144
+ .setCategory(issue_types_1.IssuesCategory.READINESS)
145
+ .setPropertyId("prop808")
146
+ .setTitle("System Update Required")
147
+ .setDescription("System requires critical security update")
148
+ .setEntityType(issue_types_1.EntityType.PROPERTY)
149
+ .setPriority(issue_types_1.IssuePriority.HIGH)
150
+ .setAssignedTo("system-admin")
151
+ .setCreatedBy("update-manager")
152
+ .setDueDate(dueDate);
153
+ const issue = await this.issueService.createIssue(issueBuilder);
154
+ return issue;
155
+ }
156
+ /**
157
+ * Example 10: Backward compatibility - still works with CreateIssueData
158
+ */
159
+ async createIssueWithLegacyData() {
160
+ const issueData = {
161
+ category: issue_types_1.IssuesCategory.OPERATIONS,
162
+ propertyId: "prop123",
163
+ title: "Legacy Issue",
164
+ description: "This issue was created using the old CreateIssueData format",
165
+ entityId: "device456",
166
+ entityType: issue_types_1.EntityType.DEVICE,
167
+ priority: issue_types_1.IssuePriority.MEDIUM,
168
+ assignedTo: "tech-support",
169
+ createdBy: "legacy-system",
170
+ dueDate: new Date("2024-01-20")
171
+ };
172
+ // This still works with the updated createIssue method
173
+ const issue = await this.issueService.createIssue(issueData);
174
+ return issue;
175
+ }
176
+ }
177
+ exports.IssueServiceExample = IssueServiceExample;
@@ -0,0 +1,8 @@
1
+ export declare class LocalPropertyService {
2
+ private readonly propertyRepository;
3
+ constructor();
4
+ getPropertyPreferences(propertyId: string): Promise<import("../interfaces").IPropertySettings | null>;
5
+ getProperty(propertyId: string): Promise<import("../interfaces").IProperty | null>;
6
+ getPropertyTimeZone(propertyId: string): Promise<string>;
7
+ getAllProperties(): Promise<any[]>;
8
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocalPropertyService = void 0;
4
+ const Property_repository_1 = require("../repository/Property.repository");
5
+ class LocalPropertyService {
6
+ constructor() {
7
+ this.propertyRepository = new Property_repository_1.PropertyRepository();
8
+ }
9
+ async getPropertyPreferences(propertyId) {
10
+ if (!propertyId) {
11
+ throw new Error("Property ID is required");
12
+ }
13
+ return await this.propertyRepository.getPropertyPreferences(propertyId);
14
+ }
15
+ async getProperty(propertyId) {
16
+ if (!propertyId) {
17
+ throw new Error("Property ID is required");
18
+ }
19
+ return await this.propertyRepository.getProperty(propertyId);
20
+ }
21
+ async getPropertyTimeZone(propertyId) {
22
+ if (!propertyId) {
23
+ throw new Error("Property ID is required");
24
+ }
25
+ const property = await this.propertyRepository.getProperty(propertyId);
26
+ if (!property) {
27
+ throw new Error("Property not found");
28
+ }
29
+ return property.timezone;
30
+ }
31
+ async getAllProperties() {
32
+ const properties = await this.propertyRepository.getAllProperties();
33
+ return properties;
34
+ }
35
+ }
36
+ exports.LocalPropertyService = LocalPropertyService;
@@ -0,0 +1,9 @@
1
+ import { ISchedule } from "../interfaces/ISchedule";
2
+ export declare class LocalScheduleService {
3
+ private readonly scheduleRepository;
4
+ constructor();
5
+ getSchedule(scheduleId: string): Promise<any>;
6
+ setSchedule(scheduleId: string, schedule: ISchedule): Promise<any>;
7
+ getScheduleByZone(zoneId: string): Promise<any>;
8
+ deleteSchedule(scheduleId: string): Promise<any>;
9
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LocalScheduleService = void 0;
7
+ const typedi_1 = __importDefault(require("typedi"));
8
+ const Schedule_repository_1 = require("../repository/Schedule.repository");
9
+ class LocalScheduleService {
10
+ constructor() {
11
+ this.scheduleRepository = typedi_1.default.get(Schedule_repository_1.ScheduleRepository);
12
+ }
13
+ async getSchedule(scheduleId) {
14
+ return await this.scheduleRepository.getSchedule(scheduleId);
15
+ }
16
+ async setSchedule(scheduleId, schedule) {
17
+ return await this.scheduleRepository.setSchedule(scheduleId, schedule);
18
+ }
19
+ async getScheduleByZone(zoneId) {
20
+ return await this.scheduleRepository.getScheduleByZone(zoneId);
21
+ }
22
+ async deleteSchedule(scheduleId) {
23
+ return await this.scheduleRepository.deleteSchedule(scheduleId);
24
+ }
25
+ }
26
+ exports.LocalScheduleService = LocalScheduleService;
@@ -0,0 +1,3 @@
1
+ export * from "./Device.service";
2
+ export * from "./Hub.service";
3
+ export * from "./Schedule.service";
@@ -0,0 +1,19 @@
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("./Device.service"), exports);
18
+ __exportStar(require("./Hub.service"), exports);
19
+ __exportStar(require("./Schedule.service"), exports);
@@ -1,6 +1,5 @@
1
- import { IAccessGroup } from "./IAccessGroup";
2
1
  export declare class AccessGroupRepository {
3
2
  private readonly postgres;
4
3
  constructor();
5
- getAccessGroup(accessGroupId: string): Promise<IAccessGroup | null>;
4
+ getAccessGroup(accessGroupId: string): Promise<any>;
6
5
  }
@@ -56,10 +56,7 @@ let AccessGroupRepository = (() => {
56
56
  WHERE "id" = $1
57
57
  `;
58
58
  const result = await this.postgres.query(query, [accessGroupId]);
59
- if (result.rows.length > 0) {
60
- return result.rows[0];
61
- }
62
- return null;
59
+ return result.rows[0];
63
60
  }
64
61
  };
65
62
  __setFunctionName(_classThis, "AccessGroupRepository");
@@ -1,6 +1,5 @@
1
- import { IAccessGroup } from "./IAccessGroup";
2
1
  export declare class AccessGroupService {
3
2
  private readonly accessGroupRepository;
4
3
  constructor();
5
- getAccessGroup(accessGroupId: string): Promise<IAccessGroup | null>;
4
+ getAccessGroup(accessGroupId: string): Promise<any>;
6
5
  }
@@ -87,10 +87,7 @@ let AccessGroupService = (() => {
87
87
  if (!accessGroupId) {
88
88
  throw new Error("Access Group ID is required");
89
89
  }
90
- const accessGroup = await this.accessGroupRepository.getAccessGroup(accessGroupId);
91
- if (!accessGroup)
92
- return null;
93
- return accessGroup;
90
+ return await this.accessGroupRepository.getAccessGroup(accessGroupId);
94
91
  }
95
92
  };
96
93
  __setFunctionName(_classThis, "AccessGroupService");
@@ -104,3 +101,5 @@ let AccessGroupService = (() => {
104
101
  return AccessGroupService = _classThis;
105
102
  })();
106
103
  exports.AccessGroupService = AccessGroupService;
104
+ // Accessgroup.getAccessGroup(accessGroupId)
105
+ // GetAccessGroup()
@@ -21,6 +21,9 @@ export interface ISchedule {
21
21
  timezone: string;
22
22
  scheduleInheritedFrom?: "zone" | "device";
23
23
  zoneId: string;
24
+ reservationId?: string;
25
+ accessGroupId?: string;
26
+ type: "ON" | "OFF";
24
27
  userId?: string;
25
28
  status: "SET" | "UNSET";
26
29
  }
@@ -213,9 +213,13 @@ let LocalDeviceService = (() => {
213
213
  if (!deviceId || !newState) {
214
214
  throw new Error("Device ID and new state are required");
215
215
  }
216
- // If old state and new state are different
217
216
  const oldState = (await this.getState(deviceId))?.state ?? {};
218
- const changedKeys = Object.keys(newState).filter((key) => !(0, lodash_1.isEqual)(oldState[key]?.value?.toLowerCase(), newState[key]?.value?.toLowerCase()));
217
+ const changedKeys = Object.keys(newState).filter((key) => {
218
+ const oldVal = oldState[key]?.value;
219
+ const newVal = newState[key]?.value;
220
+ // Convert both to string (handles string/number/boolean safely)
221
+ return !(0, lodash_1.isEqual)(String(oldVal).toLowerCase(), String(newVal).toLowerCase());
222
+ });
219
223
  if (changedKeys.length > 0) {
220
224
  await this.deviceRepository.setState(deviceId, newState);
221
225
  return await this.eventHandler.onStateChange(deviceId, newState, auditProperties, eventType);
@@ -2,5 +2,5 @@ import { IGuest } from "./IGuest";
2
2
  export declare class GuestRepository {
3
3
  private readonly pmsPostgres;
4
4
  constructor();
5
- getGuest(guestId: string): Promise<IGuest | null>;
5
+ getGuest(guestId: string): Promise<IGuest>;
6
6
  }
@@ -52,11 +52,8 @@ let GuestRepository = (() => {
52
52
  }
53
53
  async getGuest(guestId) {
54
54
  try {
55
- const guest = await this.pmsPostgres.query(`SELECT * FROM dt_guest WHERE "id" = $1`, [guestId]);
56
- if (guest.rows.length > 0) {
57
- return guest.rows[0];
58
- }
59
- return null;
55
+ const guest = await this.pmsPostgres.query(`SELECT * FROM dt_guests WHERE "id" = $1`, [guestId]);
56
+ return guest.rows[0];
60
57
  }
61
58
  catch (error) {
62
59
  console.error("Error in getGuest:", error);
@@ -2,5 +2,5 @@ import { IGuest } from "./IGuest";
2
2
  export declare class GuestService {
3
3
  private readonly guestRepository;
4
4
  constructor();
5
- getGuest(guestId: string): Promise<IGuest | null>;
5
+ getGuest(guestId: string): Promise<IGuest>;
6
6
  }
@@ -88,10 +88,7 @@ let GuestService = (() => {
88
88
  if (!guestId) {
89
89
  throw new Error("Guest ID is required");
90
90
  }
91
- const guest = await this.guestRepository.getGuest(guestId);
92
- if (!guest)
93
- return null;
94
- return guest;
91
+ return await this.guestRepository.getGuest(guestId);
95
92
  }
96
93
  };
97
94
  __setFunctionName(_classThis, "GuestService");
@@ -2,5 +2,5 @@ import { ISchedule } from "./ISchedule";
2
2
  export declare class ScheduleRepository {
3
3
  private readonly pmsPostgres;
4
4
  constructor();
5
- getSchedule(scheduleId: string): Promise<ISchedule | null>;
5
+ getSchedule(scheduleId: string): Promise<ISchedule>;
6
6
  }
@@ -52,11 +52,8 @@ let ScheduleRepository = (() => {
52
52
  }
53
53
  async getSchedule(scheduleId) {
54
54
  try {
55
- const schedule = await this.pmsPostgres.query(`SELECT * FROM dt_schedule WHERE "id" = $1`, [scheduleId]);
56
- if (schedule.rows.length > 0) {
57
- return schedule.rows[0];
58
- }
59
- return null;
55
+ const schedule = await this.pmsPostgres.query(`SELECT * FROM dt_schedules WHERE "id" = $1`, [scheduleId]);
56
+ return schedule.rows[0];
60
57
  }
61
58
  catch (error) {
62
59
  console.error("Error in getSchedule:", error);
@@ -2,5 +2,5 @@ import { ISchedule } from "./ISchedule";
2
2
  export declare class ScheduleService {
3
3
  private readonly scheduleRepository;
4
4
  constructor();
5
- getSchedule(scheduleId: string): Promise<ISchedule | null>;
5
+ getSchedule(scheduleId: string): Promise<ISchedule>;
6
6
  }
@@ -88,10 +88,7 @@ let ScheduleService = (() => {
88
88
  if (!scheduleId) {
89
89
  throw new Error("Schedule ID is required");
90
90
  }
91
- const schedule = await this.scheduleRepository.getSchedule(scheduleId);
92
- if (!schedule)
93
- return null;
94
- return schedule;
91
+ return await this.scheduleRepository.getSchedule(scheduleId);
95
92
  }
96
93
  };
97
94
  __setFunctionName(_classThis, "ScheduleService");
@@ -52,10 +52,7 @@ let UserRepository = (() => {
52
52
  }
53
53
  async getUser(userId) {
54
54
  const user = await this.postgres.query(`SELECT * FROM dt_users WHERE "id" = $1`, [userId]);
55
- if (user.rows.length > 0) {
56
- return user.rows[0];
57
- }
58
- return null;
55
+ return user.rows[0];
59
56
  }
60
57
  };
61
58
  __setFunctionName(_classThis, "UserRepository");
@@ -2,5 +2,5 @@ import { IUser } from "./IUser";
2
2
  export declare class UserService {
3
3
  private readonly userRepository;
4
4
  constructor();
5
- getUser(userId: string): Promise<IUser | null>;
5
+ getUser(userId: string): Promise<IUser>;
6
6
  }
@@ -87,10 +87,7 @@ let UserService = (() => {
87
87
  if (!userId) {
88
88
  throw new Error("User ID is required");
89
89
  }
90
- const user = await this.userRepository.getUser(userId);
91
- if (!user)
92
- return null;
93
- return user;
90
+ return await this.userRepository.getUser(userId);
94
91
  }
95
92
  };
96
93
  __setFunctionName(_classThis, "UserService");
@@ -88,10 +88,7 @@ let ZoneService = (() => {
88
88
  if (!zoneId) {
89
89
  throw new Error("Zone ID is required");
90
90
  }
91
- const zone = await this.zoneRepository.getZone(zoneId);
92
- if (!zone)
93
- return null;
94
- return zone;
91
+ return await this.zoneRepository.getZone(zoneId);
95
92
  }
96
93
  };
97
94
  __setFunctionName(_classThis, "ZoneService");
@@ -764,7 +764,7 @@ let IssueService = (() => {
764
764
  const updatedIssue = await this.updateIssue(issue.id, updateData);
765
765
  if (updatedIssue) {
766
766
  // Log the action for audit purposes
767
- console.log(`Issue ${issue.id} has been ${action}ed by ${updatedBy}`);
767
+ //console.log(`Issue ${issue.id} has been ${action}ed by ${updatedBy}`);
768
768
  await dt_pub_sub_1.eventDispatcher.publishEvent(auditType, updatedIssue, "dt-common-device");
769
769
  await (0, audit_1.pushAudit)({
770
770
  auditType: auditType,
@@ -837,8 +837,8 @@ let IssueService = (() => {
837
837
  const responseTime = this.calculateAverageResponseTime(stats);
838
838
  const resolutionRate = this.calculateResolutionRate(stats);
839
839
  // Log resolution rate for monitoring
840
- console.log(`Resolution rate: ${resolutionRate.toFixed(2)}%`);
841
- console.log(`Response time: ${responseTime.toFixed(2)} days`);
840
+ // console.log(`Resolution rate: ${resolutionRate.toFixed(2)}%`);
841
+ // console.log(`Response time: ${responseTime.toFixed(2)} days`);
842
842
  // Business logic: Add alerts for critical metrics
843
843
  if (stats.overdue > 0) {
844
844
  console.warn(`Alert: ${stats.overdue} overdue issues detected`);
@@ -0,0 +1,6 @@
1
+ export declare enum PmsProvider {
2
+ Cloudbeds = "Cloudbeds",
3
+ StayNTouch = "StayNTouch",
4
+ HotelKey = "HotelKey",
5
+ Yanolja = "Yanolja"
6
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PmsProvider = void 0;
4
+ var PmsProvider;
5
+ (function (PmsProvider) {
6
+ PmsProvider["Cloudbeds"] = "Cloudbeds";
7
+ PmsProvider["StayNTouch"] = "StayNTouch";
8
+ PmsProvider["HotelKey"] = "HotelKey";
9
+ PmsProvider["Yanolja"] = "Yanolja";
10
+ })(PmsProvider || (exports.PmsProvider = PmsProvider = {}));
@@ -0,0 +1 @@
1
+ export * from "./webhookQueue";
@@ -0,0 +1,18 @@
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
+ // PMS module exports
18
+ __exportStar(require("./webhookQueue"), exports);
@@ -0,0 +1,2 @@
1
+ export * from "./pms-integration";
2
+ export * from "./usage";