dt-common-device 7.1.1 → 7.1.3

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 (196) hide show
  1. package/dist/alerts/Alert.model.d.ts +1 -1
  2. package/dist/entities/accessGroup/AccessGroup.repository.d.ts +2 -1
  3. package/dist/entities/accessGroup/AccessGroup.repository.js +4 -1
  4. package/dist/entities/accessGroup/AccessGroup.service.d.ts +2 -1
  5. package/dist/entities/accessGroup/AccessGroup.service.js +4 -3
  6. package/dist/entities/guest/Guest.repository.d.ts +1 -1
  7. package/dist/entities/guest/Guest.repository.js +5 -2
  8. package/dist/entities/guest/Guest.service.d.ts +1 -1
  9. package/dist/entities/guest/Guest.service.js +4 -1
  10. package/dist/entities/schedules/Schedule.repository.d.ts +1 -1
  11. package/dist/entities/schedules/Schedule.repository.js +5 -2
  12. package/dist/entities/schedules/Schedule.service.d.ts +1 -1
  13. package/dist/entities/schedules/Schedule.service.js +4 -1
  14. package/dist/entities/user/User.repository.js +4 -1
  15. package/dist/entities/user/User.service.d.ts +1 -1
  16. package/dist/entities/user/User.service.js +4 -1
  17. package/dist/entities/zone/Zone.service.js +4 -1
  18. package/dist/issues/Issue.model.d.ts +1 -1
  19. package/dist/issues/Issue.model.js +6 -1
  20. package/dist/issues/Issue.service.d.ts +10 -1
  21. package/dist/issues/Issue.service.js +46 -12
  22. package/dist/issues/IssueBuilder.d.ts +14 -9
  23. package/dist/issues/IssueBuilder.js +42 -22
  24. package/dist/issues/issue.types.d.ts +29 -4
  25. package/dist/issues/issue.types.js +23 -1
  26. package/package.json +1 -1
  27. package/dist/admin/Admin.repository.d.ts +0 -7
  28. package/dist/admin/Admin.repository.js +0 -182
  29. package/dist/admin/Admin.service.d.ts +0 -5
  30. package/dist/admin/Admin.service.js +0 -17
  31. package/dist/admin/index.d.ts +0 -1
  32. package/dist/admin/index.js +0 -17
  33. package/dist/audit/AuditProperties.d.ts +0 -16
  34. package/dist/audit/AuditProperties.js +0 -2
  35. package/dist/connection/Connection.repository.d.ts +0 -8
  36. package/dist/connection/Connection.repository.js +0 -92
  37. package/dist/connection/Connection.service.d.ts +0 -8
  38. package/dist/connection/Connection.service.js +0 -32
  39. package/dist/connection/IConnection.d.ts +0 -28
  40. package/dist/connection/IConnection.js +0 -16
  41. package/dist/connection/index.d.ts +0 -2
  42. package/dist/connection/index.js +0 -18
  43. package/dist/device/cloud/entities/CloudConnection.d.ts +0 -6
  44. package/dist/device/cloud/entities/CloudConnection.js +0 -6
  45. package/dist/device/cloud/entities/CloudDevice.d.ts +0 -16
  46. package/dist/device/cloud/entities/CloudDevice.js +0 -26
  47. package/dist/device/cloud/entities/CloudDeviceService.d.ts +0 -5
  48. package/dist/device/cloud/entities/CloudDeviceService.js +0 -9
  49. package/dist/device/cloud/entities/DeviceFactory.d.ts +0 -7
  50. package/dist/device/cloud/entities/DeviceFactory.js +0 -80
  51. package/dist/device/cloud/entities/index.d.ts +0 -3
  52. package/dist/device/cloud/entities/index.js +0 -19
  53. package/dist/device/cloud/interface.d.ts +0 -101
  54. package/dist/device/cloud/interface.js +0 -3
  55. package/dist/device/cloud/interfaces/ICloudConnection.d.ts +0 -5
  56. package/dist/device/cloud/interfaces/ICloudConnection.js +0 -2
  57. package/dist/device/cloud/interfaces/ICloudDevice.d.ts +0 -9
  58. package/dist/device/cloud/interfaces/ICloudDevice.js +0 -2
  59. package/dist/device/cloud/interfaces/ICloudDeviceService.d.ts +0 -4
  60. package/dist/device/cloud/interfaces/ICloudDeviceService.js +0 -2
  61. package/dist/device/cloud/interfaces/IConnectionService.d.ts +0 -7
  62. package/dist/device/cloud/interfaces/IConnectionService.js +0 -2
  63. package/dist/device/cloud/interfaces/IDeviceConnectionService.d.ts +0 -7
  64. package/dist/device/cloud/interfaces/IDeviceConnectionService.js +0 -3
  65. package/dist/device/cloud/interfaces/IDeviceFactory.d.ts +0 -4
  66. package/dist/device/cloud/interfaces/IDeviceFactory.js +0 -2
  67. package/dist/device/cloud/interfaces/IDeviceService.d.ts +0 -8
  68. package/dist/device/cloud/interfaces/IDeviceService.js +0 -2
  69. package/dist/device/cloud/interfaces/IDevicesService.d.ts +0 -9
  70. package/dist/device/cloud/interfaces/IDevicesService.js +0 -2
  71. package/dist/device/cloud/interfaces/IHubService.d.ts +0 -5
  72. package/dist/device/cloud/interfaces/IHubService.js +0 -2
  73. package/dist/device/cloud/interfaces/IRawDataTransformer.d.ts +0 -4
  74. package/dist/device/cloud/interfaces/IRawDataTransformer.js +0 -2
  75. package/dist/device/cloud/interfaces/IRawDevice.d.ts +0 -17
  76. package/dist/device/cloud/interfaces/IRawDevice.js +0 -11
  77. package/dist/device/cloud/interfaces/index.d.ts +0 -5
  78. package/dist/device/cloud/interfaces/index.js +0 -21
  79. package/dist/device/cloud/services/CloudDevice.service.d.ts +0 -5
  80. package/dist/device/cloud/services/CloudDevice.service.js +0 -9
  81. package/dist/device/cloud/services/Connection.service.d.ts +0 -8
  82. package/dist/device/cloud/services/Connection.service.js +0 -6
  83. package/dist/device/cloud/services/Device.service.d.ts +0 -39
  84. package/dist/device/cloud/services/Device.service.js +0 -9
  85. package/dist/device/cloud/services/DeviceCloudService.d.ts +0 -42
  86. package/dist/device/cloud/services/DeviceCloudService.js +0 -59
  87. package/dist/device/cloud/services/DeviceHub.service.d.ts +0 -3
  88. package/dist/device/cloud/services/DeviceHub.service.js +0 -6
  89. package/dist/device/cloud/services/Hub.service.d.ts +0 -25
  90. package/dist/device/cloud/services/Hub.service.js +0 -9
  91. package/dist/device/cloud/services/SmartThingsDeviceService.d.ts +0 -38
  92. package/dist/device/cloud/services/SmartThingsDeviceService.js +0 -52
  93. package/dist/device/cloud/services/index.d.ts +0 -2
  94. package/dist/device/cloud/services/index.js +0 -18
  95. package/dist/device/cloud/types.d.ts +0 -52
  96. package/dist/device/cloud/types.js +0 -15
  97. package/dist/device/index.d.ts +0 -4
  98. package/dist/device/index.js +0 -20
  99. package/dist/device/local/entities/AlertBuilder.d.ts +0 -87
  100. package/dist/device/local/entities/AlertBuilder.example.d.ts +0 -11
  101. package/dist/device/local/entities/AlertBuilder.example.js +0 -117
  102. package/dist/device/local/entities/AlertBuilder.js +0 -179
  103. package/dist/device/local/entities/IssueBuilder.d.ts +0 -109
  104. package/dist/device/local/entities/IssueBuilder.example.d.ts +0 -16
  105. package/dist/device/local/entities/IssueBuilder.example.js +0 -196
  106. package/dist/device/local/entities/IssueBuilder.js +0 -237
  107. package/dist/device/local/entities/index.d.ts +0 -2
  108. package/dist/device/local/entities/index.js +0 -7
  109. package/dist/device/local/events/EventHandler.d.ts +0 -11
  110. package/dist/device/local/events/EventHandler.js +0 -86
  111. package/dist/device/local/events/Events.d.ts +0 -54
  112. package/dist/device/local/events/Events.js +0 -57
  113. package/dist/device/local/events/index.d.ts +0 -2
  114. package/dist/device/local/events/index.js +0 -7
  115. package/dist/device/local/handler/EventHandler.d.ts +0 -7
  116. package/dist/device/local/handler/EventHandler.js +0 -44
  117. package/dist/device/local/interface.d.ts +0 -0
  118. package/dist/device/local/interface.js +0 -1
  119. package/dist/device/local/interfaces/IConnection.d.ts +0 -26
  120. package/dist/device/local/interfaces/IConnection.js +0 -14
  121. package/dist/device/local/interfaces/IDevice.d.ts +0 -68
  122. package/dist/device/local/interfaces/IDevice.js +0 -10
  123. package/dist/device/local/interfaces/IDtDevice.d.ts +0 -16
  124. package/dist/device/local/interfaces/IDtDevice.js +0 -2
  125. package/dist/device/local/interfaces/IHub.d.ts +0 -46
  126. package/dist/device/local/interfaces/IHub.js +0 -2
  127. package/dist/device/local/interfaces/IProperty.d.ts +0 -29
  128. package/dist/device/local/interfaces/IProperty.js +0 -2
  129. package/dist/device/local/interfaces/ISchedule.d.ts +0 -25
  130. package/dist/device/local/interfaces/ISchedule.js +0 -2
  131. package/dist/device/local/interfaces/index.d.ts +0 -3
  132. package/dist/device/local/interfaces/index.js +0 -19
  133. package/dist/device/local/models/Alert.model.d.ts +0 -28
  134. package/dist/device/local/models/Alert.model.js +0 -222
  135. package/dist/device/local/models/Issue.model.d.ts +0 -28
  136. package/dist/device/local/models/Issue.model.js +0 -260
  137. package/dist/device/local/repository/Alert.repository.d.ts +0 -106
  138. package/dist/device/local/repository/Alert.repository.js +0 -374
  139. package/dist/device/local/repository/Connection.repository.d.ts +0 -8
  140. package/dist/device/local/repository/Connection.repository.js +0 -92
  141. package/dist/device/local/repository/Device.repository.d.ts +0 -30
  142. package/dist/device/local/repository/Device.repository.js +0 -325
  143. package/dist/device/local/repository/Hub.repository.d.ts +0 -13
  144. package/dist/device/local/repository/Hub.repository.js +0 -139
  145. package/dist/device/local/repository/Issue.repository.d.ts +0 -113
  146. package/dist/device/local/repository/Issue.repository.js +0 -401
  147. package/dist/device/local/repository/Property.repository.d.ts +0 -8
  148. package/dist/device/local/repository/Property.repository.js +0 -95
  149. package/dist/device/local/repository/Schedule.repository.d.ts +0 -9
  150. package/dist/device/local/repository/Schedule.repository.js +0 -109
  151. package/dist/device/local/services/Alert.service.d.ts +0 -137
  152. package/dist/device/local/services/Alert.service.js +0 -475
  153. package/dist/device/local/services/AlertService.example.d.ts +0 -55
  154. package/dist/device/local/services/AlertService.example.js +0 -148
  155. package/dist/device/local/services/Connection.service.d.ts +0 -8
  156. package/dist/device/local/services/Connection.service.js +0 -32
  157. package/dist/device/local/services/Device.service.d.ts +0 -40
  158. package/dist/device/local/services/Device.service.js +0 -391
  159. package/dist/device/local/services/DeviceHub.service.d.ts +0 -11
  160. package/dist/device/local/services/DeviceHub.service.js +0 -40
  161. package/dist/device/local/services/Hub.service.d.ts +0 -12
  162. package/dist/device/local/services/Hub.service.js +0 -107
  163. package/dist/device/local/services/Issue.service.d.ts +0 -168
  164. package/dist/device/local/services/Issue.service.js +0 -642
  165. package/dist/device/local/services/IssueService.example.d.ts +0 -68
  166. package/dist/device/local/services/IssueService.example.js +0 -177
  167. package/dist/device/local/services/Property.service.d.ts +0 -8
  168. package/dist/device/local/services/Property.service.js +0 -36
  169. package/dist/device/local/services/Schedule.service.d.ts +0 -9
  170. package/dist/device/local/services/Schedule.service.js +0 -26
  171. package/dist/device/local/services/index.d.ts +0 -3
  172. package/dist/device/local/services/index.js +0 -19
  173. package/dist/pms/IPms.d.ts +0 -6
  174. package/dist/pms/IPms.js +0 -10
  175. package/dist/pms/index.d.ts +0 -1
  176. package/dist/pms/index.js +0 -17
  177. package/dist/property/IProperty.d.ts +0 -29
  178. package/dist/property/IProperty.js +0 -2
  179. package/dist/property/Property.repository.d.ts +0 -8
  180. package/dist/property/Property.repository.js +0 -109
  181. package/dist/property/Property.service.d.ts +0 -8
  182. package/dist/property/Property.service.js +0 -124
  183. package/dist/property/index.d.ts +0 -2
  184. package/dist/property/index.js +0 -18
  185. package/dist/queue/interfaces/IHttpRequestJob.d.ts +0 -9
  186. package/dist/queue/interfaces/IHttpRequestJob.js +0 -2
  187. package/dist/types/alert.types.d.ts +0 -57
  188. package/dist/types/alert.types.js +0 -22
  189. package/dist/types/config.types.d.ts +0 -19
  190. package/dist/types/config.types.js +0 -2
  191. package/dist/types/index.d.ts +0 -3
  192. package/dist/types/index.js +0 -19
  193. package/dist/types/issue.types.d.ts +0 -90
  194. package/dist/types/issue.types.js +0 -40
  195. package/dist/utils/http-utils.d.ts +0 -13
  196. package/dist/utils/http-utils.js +0 -117
@@ -13,7 +13,7 @@ interface IAlertModel extends Model<IAlertDocument, {}, IAlertMethods> {
13
13
  findSnoozed(includeDeleted?: boolean): Promise<IAlertDocument[]>;
14
14
  findExpiredSnooze(includeDeleted?: boolean): Promise<IAlertDocument[]>;
15
15
  }
16
- declare const AlertSchema: mongoose.Schema<IAlertDocument, IAlertModel, IAlertMethods, {}, {}, {}, mongoose.DefaultSchemaOptions, IAlertDocument, mongoose.Document<unknown, {}, mongoose.FlatRecord<IAlertDocument>, {}> & Omit<mongoose.FlatRecord<IAlertDocument> & Required<{
16
+ declare const AlertSchema: mongoose.Schema<IAlertDocument, IAlertModel, IAlertMethods, {}, {}, {}, mongoose.DefaultSchemaOptions, IAlertDocument, mongoose.Document<unknown, {}, mongoose.FlatRecord<IAlertDocument>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & Omit<mongoose.FlatRecord<IAlertDocument> & Required<{
17
17
  _id: string;
18
18
  }> & {
19
19
  __v: number;
@@ -1,5 +1,6 @@
1
+ import { IAccessGroup } from "./IAccessGroup";
1
2
  export declare class AccessGroupRepository {
2
3
  private readonly postgres;
3
4
  constructor();
4
- getAccessGroup(accessGroupId: string): Promise<any>;
5
+ getAccessGroup(accessGroupId: string): Promise<IAccessGroup | null>;
5
6
  }
@@ -56,7 +56,10 @@ let AccessGroupRepository = (() => {
56
56
  WHERE "id" = $1
57
57
  `;
58
58
  const result = await this.postgres.query(query, [accessGroupId]);
59
- return result.rows[0];
59
+ if (result.rows.length > 0) {
60
+ return result.rows[0];
61
+ }
62
+ return null;
60
63
  }
61
64
  };
62
65
  __setFunctionName(_classThis, "AccessGroupRepository");
@@ -1,5 +1,6 @@
1
+ import { IAccessGroup } from "./IAccessGroup";
1
2
  export declare class AccessGroupService {
2
3
  private readonly accessGroupRepository;
3
4
  constructor();
4
- getAccessGroup(accessGroupId: string): Promise<any>;
5
+ getAccessGroup(accessGroupId: string): Promise<IAccessGroup | null>;
5
6
  }
@@ -87,7 +87,10 @@ let AccessGroupService = (() => {
87
87
  if (!accessGroupId) {
88
88
  throw new Error("Access Group ID is required");
89
89
  }
90
- return await this.accessGroupRepository.getAccessGroup(accessGroupId);
90
+ const accessGroup = await this.accessGroupRepository.getAccessGroup(accessGroupId);
91
+ if (!accessGroup)
92
+ return null;
93
+ return accessGroup;
91
94
  }
92
95
  };
93
96
  __setFunctionName(_classThis, "AccessGroupService");
@@ -101,5 +104,3 @@ let AccessGroupService = (() => {
101
104
  return AccessGroupService = _classThis;
102
105
  })();
103
106
  exports.AccessGroupService = AccessGroupService;
104
- // Accessgroup.getAccessGroup(accessGroupId)
105
- // GetAccessGroup()
@@ -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>;
5
+ getGuest(guestId: string): Promise<IGuest | null>;
6
6
  }
@@ -52,8 +52,11 @@ let GuestRepository = (() => {
52
52
  }
53
53
  async getGuest(guestId) {
54
54
  try {
55
- const guest = await this.pmsPostgres.query(`SELECT * FROM dt_guests WHERE "id" = $1`, [guestId]);
56
- return guest.rows[0];
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;
57
60
  }
58
61
  catch (error) {
59
62
  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>;
5
+ getGuest(guestId: string): Promise<IGuest | null>;
6
6
  }
@@ -88,7 +88,10 @@ let GuestService = (() => {
88
88
  if (!guestId) {
89
89
  throw new Error("Guest ID is required");
90
90
  }
91
- return await this.guestRepository.getGuest(guestId);
91
+ const guest = await this.guestRepository.getGuest(guestId);
92
+ if (!guest)
93
+ return null;
94
+ return guest;
92
95
  }
93
96
  };
94
97
  __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>;
5
+ getSchedule(scheduleId: string): Promise<ISchedule | null>;
6
6
  }
@@ -52,8 +52,11 @@ let ScheduleRepository = (() => {
52
52
  }
53
53
  async getSchedule(scheduleId) {
54
54
  try {
55
- const schedule = await this.pmsPostgres.query(`SELECT * FROM dt_schedules WHERE "id" = $1`, [scheduleId]);
56
- return schedule.rows[0];
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;
57
60
  }
58
61
  catch (error) {
59
62
  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>;
5
+ getSchedule(scheduleId: string): Promise<ISchedule | null>;
6
6
  }
@@ -88,7 +88,10 @@ let ScheduleService = (() => {
88
88
  if (!scheduleId) {
89
89
  throw new Error("Schedule ID is required");
90
90
  }
91
- return await this.scheduleRepository.getSchedule(scheduleId);
91
+ const schedule = await this.scheduleRepository.getSchedule(scheduleId);
92
+ if (!schedule)
93
+ return null;
94
+ return schedule;
92
95
  }
93
96
  };
94
97
  __setFunctionName(_classThis, "ScheduleService");
@@ -52,7 +52,10 @@ 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
- return user.rows[0];
55
+ if (user.rows.length > 0) {
56
+ return user.rows[0];
57
+ }
58
+ return null;
56
59
  }
57
60
  };
58
61
  __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>;
5
+ getUser(userId: string): Promise<IUser | null>;
6
6
  }
@@ -87,7 +87,10 @@ let UserService = (() => {
87
87
  if (!userId) {
88
88
  throw new Error("User ID is required");
89
89
  }
90
- return await this.userRepository.getUser(userId);
90
+ const user = await this.userRepository.getUser(userId);
91
+ if (!user)
92
+ return null;
93
+ return user;
91
94
  }
92
95
  };
93
96
  __setFunctionName(_classThis, "UserService");
@@ -88,7 +88,10 @@ let ZoneService = (() => {
88
88
  if (!zoneId) {
89
89
  throw new Error("Zone ID is required");
90
90
  }
91
- return await this.zoneRepository.getZone(zoneId);
91
+ const zone = await this.zoneRepository.getZone(zoneId);
92
+ if (!zone)
93
+ return null;
94
+ return zone;
92
95
  }
93
96
  };
94
97
  __setFunctionName(_classThis, "ZoneService");
@@ -14,7 +14,7 @@ interface IIssueModel extends Model<IIssueDocument, {}, IIssueMethods> {
14
14
  findOverdue(includeDeleted?: boolean): Promise<IIssueDocument[]>;
15
15
  findUpcoming(days?: number, includeDeleted?: boolean): Promise<IIssueDocument[]>;
16
16
  }
17
- declare const IssueSchema: mongoose.Schema<IIssueDocument, IIssueModel, IIssueMethods, {}, {}, {}, mongoose.DefaultSchemaOptions, IIssueDocument, mongoose.Document<unknown, {}, mongoose.FlatRecord<IIssueDocument>, {}> & Omit<mongoose.FlatRecord<IIssueDocument> & Required<{
17
+ declare const IssueSchema: mongoose.Schema<IIssueDocument, IIssueModel, IIssueMethods, {}, {}, {}, mongoose.DefaultSchemaOptions, IIssueDocument, mongoose.Document<unknown, {}, mongoose.FlatRecord<IIssueDocument>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & Omit<mongoose.FlatRecord<IIssueDocument> & Required<{
18
18
  _id: string;
19
19
  }> & {
20
20
  __v: number;
@@ -58,7 +58,7 @@ const IssueSchema = new mongoose_1.Schema({
58
58
  },
59
59
  zoneId: {
60
60
  type: String,
61
- required: true,
61
+ required: false,
62
62
  index: true,
63
63
  },
64
64
  title: {
@@ -87,6 +87,11 @@ const IssueSchema = new mongoose_1.Schema({
87
87
  default: issue_types_1.IssueStatus.PENDING,
88
88
  index: true,
89
89
  },
90
+ type: {
91
+ type: String,
92
+ enum: Object.values(issue_types_1.IssueType),
93
+ required: true,
94
+ },
90
95
  priority: {
91
96
  type: String,
92
97
  enum: Object.values(issue_types_1.IssuePriority),
@@ -1,5 +1,5 @@
1
1
  import { IIssueDocument } from "./Issue.model";
2
- import { CreateIssueData, UpdateIssueData, AddCommentData, IssuePriority, IssuesCategory, IIssueQuery } from "./issue.types";
2
+ import { CreateIssueData, UpdateIssueData, AddCommentData, IssuePriority, IssuesCategory, EntityType, IIssueQuery, IssueType } from "./issue.types";
3
3
  import { IssueBuilder } from "./IssueBuilder";
4
4
  import { Source } from "../constants/Service";
5
5
  import { IDevice } from "../entities/device/local/interfaces";
@@ -34,6 +34,15 @@ export declare class IssueService {
34
34
  * Create a user-specific issue using IssueBuilder
35
35
  */
36
36
  createUserIssue(data: CreateIssueData): Promise<IIssueDocument>;
37
+ createCloudAccountAuthorizationIssue(data: {
38
+ propertyId: string;
39
+ entityId: string;
40
+ entityType: EntityType;
41
+ title: string;
42
+ description: string;
43
+ createdBy: string;
44
+ type: IssueType;
45
+ }): Promise<IIssueDocument>;
37
46
  /**
38
47
  * Create issue for device going offline longer than baseline
39
48
  */
@@ -93,7 +93,6 @@ let IssueService = (() => {
93
93
  async createReadinessIssue(data) {
94
94
  const issueBuilder = IssueBuilder_1.IssueBuilder.createReadinessIssue()
95
95
  .setPropertyId(data.propertyId)
96
- .setZoneId(data.zoneId)
97
96
  .setTitle(data.title)
98
97
  .setDescription(data.description)
99
98
  .setCreatedBy(data.createdBy);
@@ -105,6 +104,10 @@ let IssueService = (() => {
105
104
  issueBuilder.setAssignedTo(data.assignedTo);
106
105
  if (data.dueDate)
107
106
  issueBuilder.setDueDate(data.dueDate);
107
+ if (data.zoneId)
108
+ issueBuilder.setZoneId(data.zoneId);
109
+ if (data.type)
110
+ issueBuilder.setType(data.type);
108
111
  return await this.createIssue(issueBuilder);
109
112
  }
110
113
  /**
@@ -113,7 +116,6 @@ let IssueService = (() => {
113
116
  async createOperationsIssue(data) {
114
117
  const issueBuilder = IssueBuilder_1.IssueBuilder.createOperationsIssue()
115
118
  .setPropertyId(data.propertyId)
116
- .setZoneId(data.zoneId)
117
119
  .setTitle(data.title)
118
120
  .setDescription(data.description)
119
121
  .setCreatedBy(data.createdBy);
@@ -125,6 +127,10 @@ let IssueService = (() => {
125
127
  issueBuilder.setAssignedTo(data.assignedTo);
126
128
  if (data.dueDate)
127
129
  issueBuilder.setDueDate(data.dueDate);
130
+ if (data.zoneId)
131
+ issueBuilder.setZoneId(data.zoneId);
132
+ if (data.type)
133
+ issueBuilder.setType(data.type);
128
134
  return await this.createIssue(issueBuilder);
129
135
  }
130
136
  /**
@@ -133,7 +139,6 @@ let IssueService = (() => {
133
139
  async createSecurityIssue(data) {
134
140
  const issueBuilder = IssueBuilder_1.IssueBuilder.createSecurityIssue()
135
141
  .setPropertyId(data.propertyId)
136
- .setZoneId(data.zoneId)
137
142
  .setTitle(data.title)
138
143
  .setDescription(data.description)
139
144
  .setCreatedBy(data.createdBy);
@@ -145,6 +150,10 @@ let IssueService = (() => {
145
150
  issueBuilder.setAssignedTo(data.assignedTo);
146
151
  if (data.dueDate)
147
152
  issueBuilder.setDueDate(data.dueDate);
153
+ if (data.zoneId)
154
+ issueBuilder.setZoneId(data.zoneId);
155
+ if (data.type)
156
+ issueBuilder.setType(data.type);
148
157
  return await this.createIssue(issueBuilder);
149
158
  }
150
159
  /**
@@ -153,7 +162,6 @@ let IssueService = (() => {
153
162
  async createEnergyIssue(data) {
154
163
  const issueBuilder = IssueBuilder_1.IssueBuilder.createEnergyIssue()
155
164
  .setPropertyId(data.propertyId)
156
- .setZoneId(data.zoneId)
157
165
  .setTitle(data.title)
158
166
  .setDescription(data.description)
159
167
  .setCreatedBy(data.createdBy);
@@ -165,13 +173,17 @@ let IssueService = (() => {
165
173
  issueBuilder.setAssignedTo(data.assignedTo);
166
174
  if (data.dueDate)
167
175
  issueBuilder.setDueDate(data.dueDate);
176
+ if (data.type)
177
+ issueBuilder.setType(data.type);
178
+ if (data.zoneId)
179
+ issueBuilder.setZoneId(data.zoneId);
168
180
  return await this.createIssue(issueBuilder);
169
181
  }
170
182
  /**
171
183
  * Create a device-specific issue using IssueBuilder
172
184
  */
173
185
  async createDeviceIssue(data) {
174
- const issueBuilder = IssueBuilder_1.IssueBuilder.createDeviceIssue(data.entityId, data.propertyId, data.zoneId)
186
+ const issueBuilder = IssueBuilder_1.IssueBuilder.createDeviceIssue(data.entityId, data.propertyId, data.type)
175
187
  .setTitle(data.title)
176
188
  .setDescription(data.description)
177
189
  .setCreatedBy(data.createdBy);
@@ -183,13 +195,15 @@ let IssueService = (() => {
183
195
  issueBuilder.setAssignedTo(data.assignedTo);
184
196
  if (data.dueDate)
185
197
  issueBuilder.setDueDate(data.dueDate);
198
+ if (data.zoneId)
199
+ issueBuilder.setZoneId(data.zoneId);
186
200
  return await this.createIssue(issueBuilder);
187
201
  }
188
202
  /**
189
203
  * Create a hub-specific issue using IssueBuilder
190
204
  */
191
205
  async createHubIssue(data) {
192
- const issueBuilder = IssueBuilder_1.IssueBuilder.createHubIssue(data.entityId, data.propertyId, data.zoneId)
206
+ const issueBuilder = IssueBuilder_1.IssueBuilder.createHubIssue(data.entityId, data.propertyId, data.type)
193
207
  .setTitle(data.title)
194
208
  .setDescription(data.description)
195
209
  .setCreatedBy(data.createdBy);
@@ -201,13 +215,15 @@ let IssueService = (() => {
201
215
  issueBuilder.setAssignedTo(data.assignedTo);
202
216
  if (data.dueDate)
203
217
  issueBuilder.setDueDate(data.dueDate);
218
+ if (data.zoneId)
219
+ issueBuilder.setZoneId(data.zoneId);
204
220
  return await this.createIssue(issueBuilder);
205
221
  }
206
222
  /**
207
223
  * Create a user-specific issue using IssueBuilder
208
224
  */
209
225
  async createUserIssue(data) {
210
- const issueBuilder = IssueBuilder_1.IssueBuilder.createUserIssue(data.entityId, data.propertyId, data.zoneId)
226
+ const issueBuilder = IssueBuilder_1.IssueBuilder.createUserIssue(data.entityId, data.propertyId, data.type)
211
227
  .setTitle(data.title)
212
228
  .setDescription(data.description)
213
229
  .setCreatedBy(data.createdBy);
@@ -219,6 +235,15 @@ let IssueService = (() => {
219
235
  issueBuilder.setAssignedTo(data.assignedTo);
220
236
  if (data.dueDate)
221
237
  issueBuilder.setDueDate(data.dueDate);
238
+ if (data.zoneId)
239
+ issueBuilder.setZoneId(data.zoneId);
240
+ return await this.createIssue(issueBuilder);
241
+ }
242
+ async createCloudAccountAuthorizationIssue(data) {
243
+ const issueBuilder = IssueBuilder_1.IssueBuilder.createCloudAccountAuthorizationIssue(data.propertyId, data.entityId, data.entityType, data.type)
244
+ .setTitle(data.title)
245
+ .setDescription(data.description)
246
+ .setCreatedBy(data.createdBy);
222
247
  return await this.createIssue(issueBuilder);
223
248
  }
224
249
  /**
@@ -235,6 +260,7 @@ let IssueService = (() => {
235
260
  createdBy: source,
236
261
  category: issue_types_1.IssuesCategory.OPERATIONS,
237
262
  priority: issue_types_1.IssuePriority.HIGH,
263
+ type: issue_types_1.IssueType.DEVICE_OFFLINE,
238
264
  });
239
265
  }
240
266
  async createDoorLeftOpenIssue(device, source, reason) {
@@ -249,6 +275,7 @@ let IssueService = (() => {
249
275
  createdBy: source,
250
276
  category: issue_types_1.IssuesCategory.SECURITY,
251
277
  priority: issue_types_1.IssuePriority.HIGH,
278
+ type: issue_types_1.IssueType.DOOR_LEFT_OPEN,
252
279
  });
253
280
  }
254
281
  /**
@@ -265,6 +292,7 @@ let IssueService = (() => {
265
292
  createdBy: source,
266
293
  category: issue_types_1.IssuesCategory.ENERGY,
267
294
  priority: issue_types_1.IssuePriority.MEDIUM,
295
+ type: issue_types_1.IssueType.BATTERY_LOW,
268
296
  });
269
297
  }
270
298
  /**
@@ -281,13 +309,14 @@ let IssueService = (() => {
281
309
  createdBy: source,
282
310
  category: issue_types_1.IssuesCategory.OPERATIONS,
283
311
  priority: issue_types_1.IssuePriority.HIGH,
312
+ type: issue_types_1.IssueType.DEVICE_MALFUNCTION,
284
313
  });
285
314
  }
286
315
  /**
287
316
  * Create a maintenance issue using IssueBuilder
288
317
  */
289
318
  async createMaintenanceIssue(data) {
290
- const issueBuilder = IssueBuilder_1.IssueBuilder.createMaintenanceIssue(data.propertyId, data.zoneId, data.entityId, data.entityType)
319
+ const issueBuilder = IssueBuilder_1.IssueBuilder.createMaintenanceIssue(data.propertyId, data.type, data.entityId, data.entityType)
291
320
  .setTitle(data.title)
292
321
  .setDescription(data.description)
293
322
  .setCreatedBy(data.createdBy);
@@ -295,13 +324,15 @@ let IssueService = (() => {
295
324
  issueBuilder.setAssignedTo(data.assignedTo);
296
325
  if (data.dueDate)
297
326
  issueBuilder.setDueDate(data.dueDate);
327
+ if (data.zoneId)
328
+ issueBuilder.setZoneId(data.zoneId);
298
329
  return await this.createIssue(issueBuilder);
299
330
  }
300
331
  /**
301
332
  * Create an urgent issue using IssueBuilder
302
333
  */
303
334
  async createUrgentIssue(data) {
304
- const issueBuilder = IssueBuilder_1.IssueBuilder.createUrgentIssue(data.propertyId, data.zoneId, data.entityId, data.entityType)
335
+ const issueBuilder = IssueBuilder_1.IssueBuilder.createUrgentIssue(data.propertyId, data.type, data.entityId, data.entityType)
305
336
  .setTitle(data.title)
306
337
  .setDescription(data.description)
307
338
  .setCreatedBy(data.createdBy);
@@ -309,6 +340,8 @@ let IssueService = (() => {
309
340
  issueBuilder.setAssignedTo(data.assignedTo);
310
341
  if (data.dueDate)
311
342
  issueBuilder.setDueDate(data.dueDate);
343
+ if (data.zoneId)
344
+ issueBuilder.setZoneId(data.zoneId);
312
345
  return await this.createIssue(issueBuilder);
313
346
  }
314
347
  /**
@@ -644,9 +677,7 @@ let IssueService = (() => {
644
677
  if (!data.propertyId) {
645
678
  throw new Error("Property ID is required");
646
679
  }
647
- if (!data.zoneId) {
648
- throw new Error("Zone ID is required");
649
- }
680
+ // Zone ID is now optional, so no validation needed
650
681
  if (!data.createdBy) {
651
682
  throw new Error("Created by user ID is required");
652
683
  }
@@ -673,16 +704,19 @@ let IssueService = (() => {
673
704
  issue_types_1.IssueStatus.IN_PROGRESS,
674
705
  issue_types_1.IssueStatus.CANCELLED,
675
706
  issue_types_1.IssueStatus.ON_HOLD,
707
+ issue_types_1.IssueStatus.IGNORED,
676
708
  ],
677
709
  [issue_types_1.IssueStatus.IN_PROGRESS]: [
678
710
  issue_types_1.IssueStatus.RESOLVED,
679
711
  issue_types_1.IssueStatus.CANCELLED,
680
712
  issue_types_1.IssueStatus.ON_HOLD,
713
+ issue_types_1.IssueStatus.IGNORED,
681
714
  ],
682
715
  [issue_types_1.IssueStatus.RESOLVED]: [issue_types_1.IssueStatus.CLOSED, issue_types_1.IssueStatus.PENDING], // Reopen
683
716
  [issue_types_1.IssueStatus.CLOSED]: [issue_types_1.IssueStatus.PENDING], // Reopen
684
717
  [issue_types_1.IssueStatus.CANCELLED]: [issue_types_1.IssueStatus.PENDING], // Reopen
685
718
  [issue_types_1.IssueStatus.ON_HOLD]: [issue_types_1.IssueStatus.PENDING, issue_types_1.IssueStatus.IN_PROGRESS],
719
+ [issue_types_1.IssueStatus.IGNORED]: [issue_types_1.IssueStatus.PENDING, issue_types_1.IssueStatus.IN_PROGRESS], // Reopen from ignored
686
720
  };
687
721
  if (!validTransitions[currentStatus]?.includes(newStatus)) {
688
722
  throw new Error(`Invalid status transition from ${currentStatus} to ${newStatus}`);
@@ -1,4 +1,4 @@
1
- import { CreateIssueData, IssuesCategory, IssuePriority, EntityType } from "./issue.types";
1
+ import { CreateIssueData, IssuesCategory, IssuePriority, EntityType, IssueType } from "./issue.types";
2
2
  /**
3
3
  * IssueBuilder - A builder pattern implementation for constructing CreateIssueData objects
4
4
  *
@@ -31,9 +31,13 @@ export declare class IssueBuilder {
31
31
  */
32
32
  setPropertyId(propertyId: string): this;
33
33
  /**
34
- * Sets the zone ID
34
+ * Sets the zone ID (optional)
35
35
  */
36
- setZoneId(zoneId: string): this;
36
+ setZoneId(zoneId?: string): this;
37
+ /**
38
+ * Sets the issue type
39
+ */
40
+ setType(type: IssueType): this;
37
41
  /**
38
42
  * Sets the issue title
39
43
  */
@@ -89,25 +93,26 @@ export declare class IssueBuilder {
89
93
  /**
90
94
  * Creates a device-specific issue builder
91
95
  */
92
- static createDeviceIssue(deviceId: string, propertyId: string, zoneId: string): IssueBuilder;
96
+ static createDeviceIssue(deviceId: string, propertyId: string, type: IssueType): IssueBuilder;
93
97
  /**
94
98
  * Creates a hub-specific issue builder
95
99
  */
96
- static createHubIssue(hubId: string, propertyId: string, zoneId: string): IssueBuilder;
100
+ static createHubIssue(hubId: string, propertyId: string, type: IssueType): IssueBuilder;
97
101
  /**
98
102
  * Creates a user-specific issue builder
99
103
  */
100
- static createUserIssue(userId: string, propertyId: string, zoneId: string): IssueBuilder;
104
+ static createUserIssue(userId: string, propertyId: string, type: IssueType): IssueBuilder;
101
105
  /**
102
106
  * Creates a property-specific issue builder
103
107
  */
104
- static createPropertyIssue(propertyId: string, zoneId: string): IssueBuilder;
108
+ static createPropertyIssue(propertyId: string, type: IssueType): IssueBuilder;
105
109
  /**
106
110
  * Creates a maintenance issue builder
107
111
  */
108
- static createMaintenanceIssue(propertyId: string, zoneId: string, entityId?: string, entityType?: EntityType): IssueBuilder;
112
+ static createMaintenanceIssue(propertyId: string, type: IssueType, entityId?: string, entityType?: EntityType): IssueBuilder;
109
113
  /**
110
114
  * Creates an urgent issue builder
111
115
  */
112
- static createUrgentIssue(propertyId: string, zoneId: string, entityId?: string, entityType?: EntityType): IssueBuilder;
116
+ static createUrgentIssue(propertyId: string, type: IssueType, entityId?: string, entityType?: EntityType): IssueBuilder;
117
+ static createCloudAccountAuthorizationIssue(propertyId: string, entityId: string, entityType: EntityType, type: IssueType): IssueBuilder;
113
118
  }