dt-common-device 4.0.8 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/alerts/Alert.service.d.ts +1 -1
- package/dist/audit/AuditUtils.d.ts +26 -2
- package/dist/audit/AuditUtils.js +255 -32
- package/dist/audit/IAuditProperties.d.ts +32 -0
- package/dist/audit/IAuditProperties.js +13 -0
- package/dist/audit/PushAudit.d.ts +5 -0
- package/dist/audit/PushAudit.js +16 -0
- package/dist/audit/index.d.ts +2 -0
- package/dist/audit/index.js +18 -0
- package/dist/config/config.d.ts +10 -3
- package/dist/config/config.js +120 -47
- package/dist/config/config.types.d.ts +1 -8
- package/dist/config/constants.d.ts +49 -0
- package/dist/config/constants.js +64 -0
- package/dist/db/db.d.ts +2 -0
- package/dist/db/db.js +23 -1
- package/dist/entities/accessGroup/AccessGroup.repository.d.ts +5 -0
- package/dist/{device/local/repository/Connection.repository.js → entities/accessGroup/AccessGroup.repository.js} +15 -35
- package/dist/entities/accessGroup/AccessGroup.service.d.ts +5 -0
- package/dist/entities/accessGroup/AccessGroup.service.js +105 -0
- package/dist/entities/accessGroup/IAccessGroup.d.ts +14 -0
- package/dist/entities/accessGroup/index.d.ts +2 -0
- package/dist/entities/accessGroup/index.js +18 -0
- package/dist/{admin → entities/admin}/Admin.repository.js +4 -4
- package/dist/{connection → entities/connection}/Connection.repository.js +1 -1
- package/dist/{device → entities/device}/local/repository/Device.repository.js +3 -3
- package/dist/{device → entities/device}/local/repository/Hub.repository.js +3 -3
- package/dist/{device → entities/device}/local/repository/Schedule.repository.js +2 -2
- package/dist/{device → entities/device}/local/services/Device.service.d.ts +9 -9
- package/dist/{device → entities/device}/local/services/Device.service.js +4 -4
- package/dist/entities/guest/Guest.repository.d.ts +6 -0
- package/dist/entities/guest/Guest.repository.js +74 -0
- package/dist/entities/guest/Guest.service.d.ts +6 -0
- package/dist/entities/guest/Guest.service.js +104 -0
- package/dist/entities/guest/IGuest.d.ts +12 -0
- package/dist/entities/guest/index.d.ts +2 -0
- package/dist/entities/guest/index.js +18 -0
- package/dist/{property → entities/property}/Property.repository.js +1 -1
- package/dist/entities/schedules/ISchedule.d.ts +14 -0
- package/dist/entities/schedules/Schedule.repository.d.ts +6 -0
- package/dist/entities/schedules/Schedule.repository.js +74 -0
- package/dist/entities/schedules/Schedule.service.d.ts +6 -0
- package/dist/entities/schedules/Schedule.service.js +104 -0
- package/dist/entities/schedules/index.d.ts +2 -0
- package/dist/entities/schedules/index.js +18 -0
- package/dist/entities/user/IUser.d.ts +15 -0
- package/dist/entities/user/User.repository.d.ts +5 -0
- package/dist/entities/user/User.repository.js +68 -0
- package/dist/entities/user/User.service.d.ts +6 -0
- package/dist/entities/user/User.service.js +103 -0
- package/dist/entities/zone/IZone.d.ts +10 -0
- package/dist/entities/zone/Zone.repository.d.ts +6 -0
- package/dist/{device/local/repository/Property.repository.js → entities/zone/Zone.repository.js} +14 -32
- package/dist/entities/zone/Zone.service.d.ts +6 -0
- package/dist/entities/zone/Zone.service.js +104 -0
- package/dist/entities/zone/index.d.ts +2 -0
- package/dist/entities/zone/index.js +18 -0
- package/dist/events/BaseEventHandler.d.ts +3 -3
- package/dist/events/BaseEventHandler.js +1 -1
- package/dist/events/DeviceEventHandler.d.ts +1 -1
- package/dist/events/DeviceEventHandler.js +4 -3
- package/dist/events/EventHandler.d.ts +10 -9
- package/dist/events/EventHandler.js +50 -9
- package/dist/events/InternalEventSubscription.js +1 -1
- package/dist/index.d.ts +9 -8
- package/dist/index.js +10 -8
- package/dist/issues/Issue.service.d.ts +1 -1
- package/dist/microservice/MicroServiceFactory.d.ts +1 -1
- package/dist/microservice/MicroServiceFactory.js +1 -1
- package/dist/utils/http.utils.d.ts +1 -2
- package/dist/utils/http.utils.js +5 -28
- package/package.json +1 -1
- package/dist/audit/AuditProperties.d.ts +0 -16
- package/dist/device/cloud/entities/CloudConnection.d.ts +0 -6
- package/dist/device/cloud/entities/CloudConnection.js +0 -6
- package/dist/device/cloud/interface.d.ts +0 -101
- package/dist/device/cloud/interface.js +0 -3
- package/dist/device/cloud/interfaces/ICloudConnection.d.ts +0 -5
- package/dist/device/cloud/interfaces/IConnectionService.d.ts +0 -7
- package/dist/device/cloud/interfaces/IDeviceConnectionService.d.ts +0 -7
- package/dist/device/cloud/interfaces/IDeviceConnectionService.js +0 -3
- package/dist/device/cloud/interfaces/IDeviceService.d.ts +0 -8
- package/dist/device/cloud/interfaces/IDevicesService.d.ts +0 -9
- package/dist/device/cloud/interfaces/IHubService.d.ts +0 -5
- package/dist/device/cloud/interfaces/IHubService.js +0 -2
- package/dist/device/cloud/services/CloudDevice.service.d.ts +0 -5
- package/dist/device/cloud/services/CloudDevice.service.js +0 -9
- package/dist/device/cloud/services/Connection.service.d.ts +0 -8
- package/dist/device/cloud/services/Connection.service.js +0 -6
- package/dist/device/cloud/services/Device.service.d.ts +0 -39
- package/dist/device/cloud/services/Device.service.js +0 -9
- package/dist/device/cloud/services/DeviceCloudService.d.ts +0 -42
- package/dist/device/cloud/services/DeviceCloudService.js +0 -59
- package/dist/device/cloud/services/DeviceHub.service.d.ts +0 -3
- package/dist/device/cloud/services/DeviceHub.service.js +0 -6
- package/dist/device/cloud/services/Hub.service.d.ts +0 -25
- package/dist/device/cloud/services/Hub.service.js +0 -9
- package/dist/device/cloud/services/SmartThingsDeviceService.d.ts +0 -38
- package/dist/device/cloud/services/SmartThingsDeviceService.js +0 -52
- package/dist/device/cloud/services/index.d.ts +0 -2
- package/dist/device/cloud/services/index.js +0 -18
- package/dist/device/cloud/types.d.ts +0 -52
- package/dist/device/cloud/types.js +0 -15
- package/dist/device/index.d.ts +0 -4
- package/dist/device/index.js +0 -20
- package/dist/device/local/entities/AlertBuilder.d.ts +0 -87
- package/dist/device/local/entities/AlertBuilder.example.d.ts +0 -11
- package/dist/device/local/entities/AlertBuilder.example.js +0 -117
- package/dist/device/local/entities/AlertBuilder.js +0 -179
- package/dist/device/local/entities/IssueBuilder.d.ts +0 -109
- package/dist/device/local/entities/IssueBuilder.example.d.ts +0 -16
- package/dist/device/local/entities/IssueBuilder.example.js +0 -196
- package/dist/device/local/entities/IssueBuilder.js +0 -237
- package/dist/device/local/entities/index.d.ts +0 -2
- package/dist/device/local/entities/index.js +0 -7
- package/dist/device/local/events/EventHandler.d.ts +0 -11
- package/dist/device/local/events/EventHandler.js +0 -86
- package/dist/device/local/events/Events.d.ts +0 -54
- package/dist/device/local/events/Events.js +0 -57
- package/dist/device/local/events/index.d.ts +0 -2
- package/dist/device/local/events/index.js +0 -7
- package/dist/device/local/handler/EventHandler.d.ts +0 -7
- package/dist/device/local/handler/EventHandler.js +0 -44
- package/dist/device/local/interface.d.ts +0 -0
- package/dist/device/local/interface.js +0 -1
- package/dist/device/local/interfaces/IConnection.d.ts +0 -26
- package/dist/device/local/interfaces/IConnection.js +0 -14
- package/dist/device/local/interfaces/IHub.d.ts +0 -46
- package/dist/device/local/interfaces/IHub.js +0 -2
- package/dist/device/local/models/Alert.model.d.ts +0 -28
- package/dist/device/local/models/Alert.model.js +0 -222
- package/dist/device/local/models/Issue.model.d.ts +0 -28
- package/dist/device/local/models/Issue.model.js +0 -260
- package/dist/device/local/repository/Alert.repository.d.ts +0 -106
- package/dist/device/local/repository/Alert.repository.js +0 -374
- package/dist/device/local/repository/Connection.repository.d.ts +0 -8
- package/dist/device/local/repository/Issue.repository.d.ts +0 -113
- package/dist/device/local/repository/Issue.repository.js +0 -401
- package/dist/device/local/repository/Property.repository.d.ts +0 -8
- package/dist/device/local/services/Alert.service.d.ts +0 -137
- package/dist/device/local/services/Alert.service.js +0 -475
- package/dist/device/local/services/AlertService.example.d.ts +0 -55
- package/dist/device/local/services/AlertService.example.js +0 -148
- package/dist/device/local/services/Connection.service.d.ts +0 -8
- package/dist/device/local/services/Connection.service.js +0 -32
- package/dist/device/local/services/DeviceHub.service.d.ts +0 -11
- package/dist/device/local/services/DeviceHub.service.js +0 -40
- package/dist/device/local/services/Issue.service.d.ts +0 -168
- package/dist/device/local/services/Issue.service.js +0 -642
- package/dist/device/local/services/IssueService.example.d.ts +0 -68
- package/dist/device/local/services/IssueService.example.js +0 -177
- package/dist/device/local/services/Property.service.d.ts +0 -8
- package/dist/device/local/services/Property.service.js +0 -36
- package/dist/property/IProperty.d.ts +0 -29
- package/dist/property/IProperty.js +0 -2
- package/dist/queue/interfaces/IHttpRequestJob.d.ts +0 -9
- package/dist/queue/interfaces/IHttpRequestJob.js +0 -2
- package/dist/types/alert.types.d.ts +0 -57
- package/dist/types/alert.types.js +0 -22
- package/dist/types/config.types.d.ts +0 -19
- package/dist/types/config.types.js +0 -2
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.js +0 -19
- package/dist/types/issue.types.d.ts +0 -90
- package/dist/types/issue.types.js +0 -40
- package/dist/utils/http-utils.d.ts +0 -13
- package/dist/utils/http-utils.js +0 -117
- /package/dist/{audit/AuditProperties.js → entities/accessGroup/IAccessGroup.js} +0 -0
- /package/dist/{admin → entities/admin}/Admin.repository.d.ts +0 -0
- /package/dist/{admin → entities/admin}/Admin.service.d.ts +0 -0
- /package/dist/{admin → entities/admin}/Admin.service.js +0 -0
- /package/dist/{admin → entities/admin}/index.d.ts +0 -0
- /package/dist/{admin → entities/admin}/index.js +0 -0
- /package/dist/{connection → entities/connection}/Connection.repository.d.ts +0 -0
- /package/dist/{connection → entities/connection}/Connection.service.d.ts +0 -0
- /package/dist/{connection → entities/connection}/Connection.service.js +0 -0
- /package/dist/{connection → entities/connection}/IConnection.d.ts +0 -0
- /package/dist/{connection → entities/connection}/IConnection.js +0 -0
- /package/dist/{connection → entities/connection}/index.d.ts +0 -0
- /package/dist/{connection → entities/connection}/index.js +0 -0
- /package/dist/{device → entities/device}/cloud/entities/CloudDevice.d.ts +0 -0
- /package/dist/{device → entities/device}/cloud/entities/CloudDevice.js +0 -0
- /package/dist/{device → entities/device}/cloud/entities/CloudDeviceService.d.ts +0 -0
- /package/dist/{device → entities/device}/cloud/entities/CloudDeviceService.js +0 -0
- /package/dist/{device → entities/device}/cloud/entities/DeviceFactory.d.ts +0 -0
- /package/dist/{device → entities/device}/cloud/entities/DeviceFactory.js +0 -0
- /package/dist/{device → entities/device}/cloud/entities/index.d.ts +0 -0
- /package/dist/{device → entities/device}/cloud/entities/index.js +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/ICloudDevice.d.ts +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/ICloudDevice.js +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/ICloudDeviceService.d.ts +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/ICloudDeviceService.js +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/IDeviceFactory.d.ts +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/IDeviceFactory.js +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/IRawDataTransformer.d.ts +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/IRawDataTransformer.js +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/IRawDevice.d.ts +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/IRawDevice.js +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/index.d.ts +0 -0
- /package/dist/{device → entities/device}/cloud/interfaces/index.js +0 -0
- /package/dist/{device → entities/device}/local/interfaces/IDevice.d.ts +0 -0
- /package/dist/{device → entities/device}/local/interfaces/IDevice.js +0 -0
- /package/dist/{device → entities/device}/local/interfaces/IDtDevice.d.ts +0 -0
- /package/dist/{device → entities/device}/local/interfaces/IDtDevice.js +0 -0
- /package/dist/{device → entities/device}/local/interfaces/ISchedule.d.ts +0 -0
- /package/dist/{device → entities/device}/local/interfaces/ISchedule.js +0 -0
- /package/dist/{device → entities/device}/local/interfaces/index.d.ts +0 -0
- /package/dist/{device → entities/device}/local/interfaces/index.js +0 -0
- /package/dist/{device → entities/device}/local/repository/Device.repository.d.ts +0 -0
- /package/dist/{device → entities/device}/local/repository/Hub.repository.d.ts +0 -0
- /package/dist/{device → entities/device}/local/repository/Schedule.repository.d.ts +0 -0
- /package/dist/{device → entities/device}/local/services/Hub.service.d.ts +0 -0
- /package/dist/{device → entities/device}/local/services/Hub.service.js +0 -0
- /package/dist/{device → entities/device}/local/services/Schedule.service.d.ts +0 -0
- /package/dist/{device → entities/device}/local/services/Schedule.service.js +0 -0
- /package/dist/{device → entities/device}/local/services/index.d.ts +0 -0
- /package/dist/{device → entities/device}/local/services/index.js +0 -0
- /package/dist/{device/cloud/interfaces/ICloudConnection.js → entities/guest/IGuest.js} +0 -0
- /package/dist/{pms → entities/pms}/IPms.d.ts +0 -0
- /package/dist/{pms → entities/pms}/IPms.js +0 -0
- /package/dist/{pms → entities/pms}/index.d.ts +0 -0
- /package/dist/{pms → entities/pms}/index.js +0 -0
- /package/dist/{device/local/interfaces → entities/property}/IProperty.d.ts +0 -0
- /package/dist/{device/local/interfaces → entities/property}/IProperty.js +0 -0
- /package/dist/{property → entities/property}/Property.repository.d.ts +0 -0
- /package/dist/{property → entities/property}/Property.service.d.ts +0 -0
- /package/dist/{property → entities/property}/Property.service.js +0 -0
- /package/dist/{property → entities/property}/index.d.ts +0 -0
- /package/dist/{property → entities/property}/index.js +0 -0
- /package/dist/{device/cloud/interfaces/IConnectionService.js → entities/schedules/ISchedule.js} +0 -0
- /package/dist/{device/cloud/interfaces/IDeviceService.js → entities/user/IUser.js} +0 -0
- /package/dist/{device/cloud/interfaces/IDevicesService.js → entities/zone/IZone.js} +0 -0
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IConnection } from "../interfaces/IConnection";
|
|
2
|
-
export declare class LocalConnectionService {
|
|
3
|
-
private readonly connectionRepository;
|
|
4
|
-
constructor();
|
|
5
|
-
createConnection(data: Partial<IConnection>): Promise<IConnection>;
|
|
6
|
-
getConnection(connectionId: string): Promise<IConnection>;
|
|
7
|
-
updateConnection(connectionId: string, data: Partial<IConnection>): Promise<IConnection>;
|
|
8
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LocalConnectionService = void 0;
|
|
4
|
-
const typedi_1 = require("typedi");
|
|
5
|
-
const Connection_repository_1 = require("../repository/Connection.repository");
|
|
6
|
-
class LocalConnectionService {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.connectionRepository = typedi_1.Container.get(Connection_repository_1.ConnectionRepository);
|
|
9
|
-
}
|
|
10
|
-
async createConnection(data) {
|
|
11
|
-
if (!data.connectionName ||
|
|
12
|
-
!data.connectionRefId ||
|
|
13
|
-
!data.propertyId ||
|
|
14
|
-
!data.connectionProvider) {
|
|
15
|
-
throw new Error("Missing required fields");
|
|
16
|
-
}
|
|
17
|
-
return await this.connectionRepository.createConnection(data);
|
|
18
|
-
}
|
|
19
|
-
async getConnection(connectionId) {
|
|
20
|
-
if (!connectionId) {
|
|
21
|
-
throw new Error("Connection ID is required");
|
|
22
|
-
}
|
|
23
|
-
return await this.connectionRepository.getConnectionById(connectionId);
|
|
24
|
-
}
|
|
25
|
-
async updateConnection(connectionId, data) {
|
|
26
|
-
if (!connectionId) {
|
|
27
|
-
throw new Error("Connection ID is required");
|
|
28
|
-
}
|
|
29
|
-
return await this.connectionRepository.updateConnection(connectionId, data);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
exports.LocalConnectionService = LocalConnectionService;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { IHubCreateParams } from "../interfaces";
|
|
2
|
-
export declare class DeviceHubService {
|
|
3
|
-
private readonly baseUrl;
|
|
4
|
-
constructor();
|
|
5
|
-
addHub(body: IHubCreateParams): Promise<any>;
|
|
6
|
-
getHubs(hubIds: string[]): Promise<any>;
|
|
7
|
-
getHub(hubId: string): Promise<any>;
|
|
8
|
-
updateHub(hubId: string, body: any): Promise<any>;
|
|
9
|
-
deleteHub(hubId: string): Promise<any>;
|
|
10
|
-
deleteAllHubs(hubIds: string[]): Promise<any>;
|
|
11
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
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.DeviceHubService = void 0;
|
|
7
|
-
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const config_1 = require("../../../config/config");
|
|
9
|
-
class DeviceHubService {
|
|
10
|
-
constructor() {
|
|
11
|
-
const { DEVICE_SERVICE } = (0, config_1.getConfig)();
|
|
12
|
-
if (!DEVICE_SERVICE) {
|
|
13
|
-
throw new Error("DEVICE_SERVICE is not configured. Call initialize() first with DEVICE_SERVICE.");
|
|
14
|
-
}
|
|
15
|
-
this.baseUrl = DEVICE_SERVICE;
|
|
16
|
-
}
|
|
17
|
-
async addHub(body) {
|
|
18
|
-
return await axios_1.default.post(`${this.baseUrl}/devices/hubs`, body);
|
|
19
|
-
}
|
|
20
|
-
//get hubs takes an array of hub ids as query params
|
|
21
|
-
async getHubs(hubIds) {
|
|
22
|
-
const query = hubIds && hubIds.length ? `?ids=${hubIds.join(",")}` : "";
|
|
23
|
-
return await axios_1.default.get(`${this.baseUrl}/devices/hubs${query}`);
|
|
24
|
-
}
|
|
25
|
-
//get hub takes a hub id in params
|
|
26
|
-
async getHub(hubId) {
|
|
27
|
-
return await axios_1.default.get(`${this.baseUrl}/devices/hubs/${hubId}`);
|
|
28
|
-
}
|
|
29
|
-
async updateHub(hubId, body) {
|
|
30
|
-
return await axios_1.default.put(`${this.baseUrl}/devices/hubs/${hubId}`, body);
|
|
31
|
-
}
|
|
32
|
-
async deleteHub(hubId) {
|
|
33
|
-
return await axios_1.default.delete(`${this.baseUrl}/devices/hubs/${hubId}`);
|
|
34
|
-
}
|
|
35
|
-
async deleteAllHubs(hubIds) {
|
|
36
|
-
const query = hubIds.length ? `?ids=${hubIds.join(",")}` : "";
|
|
37
|
-
return await axios_1.default.delete(`${this.baseUrl}/devices/hubs${query}`);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.DeviceHubService = DeviceHubService;
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { IssueRepository } from "../repository/Issue.repository";
|
|
2
|
-
import { IIssueDocument } from "../models/Issue.model";
|
|
3
|
-
import { CreateIssueData, UpdateIssueData, AddCommentData, IssueStatus, IssuePriority, IssuesCategory, EntityType } from "../../../types/issue.types";
|
|
4
|
-
import { IssueBuilder } from "../entities/IssueBuilder";
|
|
5
|
-
export declare class IssueService {
|
|
6
|
-
private readonly issueRepository;
|
|
7
|
-
constructor(issueRepository: IssueRepository);
|
|
8
|
-
/**
|
|
9
|
-
* Create a readiness issue using IssueBuilder
|
|
10
|
-
*/
|
|
11
|
-
createReadinessIssue(propertyId: string, title: string, description: string, createdBy: string, entityId?: string, entityType?: EntityType, assignedTo?: string, dueDate?: Date): Promise<IIssueDocument>;
|
|
12
|
-
/**
|
|
13
|
-
* Create an operations issue using IssueBuilder
|
|
14
|
-
*/
|
|
15
|
-
createOperationsIssue(propertyId: string, title: string, description: string, createdBy: string, entityId?: string, entityType?: EntityType, assignedTo?: string, dueDate?: Date): Promise<IIssueDocument>;
|
|
16
|
-
/**
|
|
17
|
-
* Create a security issue using IssueBuilder
|
|
18
|
-
*/
|
|
19
|
-
createSecurityIssue(propertyId: string, title: string, description: string, createdBy: string, entityId?: string, entityType?: EntityType, assignedTo?: string, dueDate?: Date): Promise<IIssueDocument>;
|
|
20
|
-
/**
|
|
21
|
-
* Create an energy issue using IssueBuilder
|
|
22
|
-
*/
|
|
23
|
-
createEnergyIssue(propertyId: string, title: string, description: string, createdBy: string, entityId?: string, entityType?: EntityType, assignedTo?: string, dueDate?: Date): Promise<IIssueDocument>;
|
|
24
|
-
/**
|
|
25
|
-
* Create a device-specific issue using IssueBuilder
|
|
26
|
-
*/
|
|
27
|
-
createDeviceIssue(deviceId: string, propertyId: string, title: string, description: string, createdBy: string, category?: IssuesCategory, priority?: IssuePriority, assignedTo?: string, dueDate?: Date): Promise<IIssueDocument>;
|
|
28
|
-
/**
|
|
29
|
-
* Create a hub-specific issue using IssueBuilder
|
|
30
|
-
*/
|
|
31
|
-
createHubIssue(hubId: string, propertyId: string, title: string, description: string, createdBy: string, category?: IssuesCategory, priority?: IssuePriority, assignedTo?: string, dueDate?: Date): Promise<IIssueDocument>;
|
|
32
|
-
/**
|
|
33
|
-
* Create a user-specific issue using IssueBuilder
|
|
34
|
-
*/
|
|
35
|
-
createUserIssue(userId: string, propertyId: string, title: string, description: string, createdBy: string, category?: IssuesCategory, priority?: IssuePriority, assignedTo?: string, dueDate?: Date): Promise<IIssueDocument>;
|
|
36
|
-
/**
|
|
37
|
-
* Create a maintenance issue using IssueBuilder
|
|
38
|
-
*/
|
|
39
|
-
createMaintenanceIssue(propertyId: string, title: string, description: string, createdBy: string, entityId?: string, entityType?: EntityType, assignedTo?: string, dueDate?: Date): Promise<IIssueDocument>;
|
|
40
|
-
/**
|
|
41
|
-
* Create an urgent issue using IssueBuilder
|
|
42
|
-
*/
|
|
43
|
-
createUrgentIssue(propertyId: string, title: string, description: string, createdBy: string, entityId?: string, entityType?: EntityType, assignedTo?: string, dueDate?: Date): Promise<IIssueDocument>;
|
|
44
|
-
/**
|
|
45
|
-
* Create a new issue with business logic validation
|
|
46
|
-
* Accepts either a CreateIssueData object or an IssueBuilder instance
|
|
47
|
-
*/
|
|
48
|
-
createIssue(issueData: CreateIssueData | IssueBuilder): Promise<IIssueDocument>;
|
|
49
|
-
/**
|
|
50
|
-
* Get issue by ID with business logic
|
|
51
|
-
*/
|
|
52
|
-
getIssueById(id: string, includeDeleted?: boolean): Promise<IIssueDocument | null>;
|
|
53
|
-
/**
|
|
54
|
-
* Get all issues with business logic filtering
|
|
55
|
-
*/
|
|
56
|
-
getIssues(filters?: {
|
|
57
|
-
propertyId?: string;
|
|
58
|
-
assignedTo?: string;
|
|
59
|
-
status?: IssueStatus;
|
|
60
|
-
priority?: IssuePriority;
|
|
61
|
-
category?: IssuesCategory;
|
|
62
|
-
entityType?: EntityType;
|
|
63
|
-
entityId?: string;
|
|
64
|
-
includeDeleted?: boolean;
|
|
65
|
-
limit?: number;
|
|
66
|
-
skip?: number;
|
|
67
|
-
}): Promise<IIssueDocument[]>;
|
|
68
|
-
/**
|
|
69
|
-
* Update an issue with business logic validation
|
|
70
|
-
*/
|
|
71
|
-
updateIssue(id: string, updateData: UpdateIssueData): Promise<IIssueDocument | null>;
|
|
72
|
-
/**
|
|
73
|
-
* Soft delete an issue with business logic
|
|
74
|
-
*/
|
|
75
|
-
deleteIssue(id: string, deletedBy: string): Promise<boolean>;
|
|
76
|
-
/**
|
|
77
|
-
* Permanently delete an issue
|
|
78
|
-
*/
|
|
79
|
-
permanentlyDeleteIssue(id: string): Promise<boolean>;
|
|
80
|
-
/**
|
|
81
|
-
* Add a comment with business logic
|
|
82
|
-
*/
|
|
83
|
-
addComment(issueId: string, commentData: AddCommentData): Promise<IIssueDocument | null>;
|
|
84
|
-
/**
|
|
85
|
-
* Update a comment on an issue
|
|
86
|
-
*/
|
|
87
|
-
updateComment(issueId: string, commentId: string, content: string, userId: string): Promise<boolean>;
|
|
88
|
-
/**
|
|
89
|
-
* Remove a comment from an issue
|
|
90
|
-
*/
|
|
91
|
-
removeComment(issueId: string, commentId: string): Promise<boolean>;
|
|
92
|
-
/**
|
|
93
|
-
* Resolve an issue with business logic
|
|
94
|
-
*/
|
|
95
|
-
resolveIssue(id: string, resolvedBy: string): Promise<IIssueDocument | null>;
|
|
96
|
-
/**
|
|
97
|
-
* Reopen a resolved issue
|
|
98
|
-
*/
|
|
99
|
-
reopenIssue(id: string, reopenedBy: string): Promise<IIssueDocument | null>;
|
|
100
|
-
/**
|
|
101
|
-
* Assign an issue with business logic
|
|
102
|
-
*/
|
|
103
|
-
assignIssue(id: string, userId: string, assignedBy: string): Promise<IIssueDocument | null>;
|
|
104
|
-
/**
|
|
105
|
-
* Unassign an issue
|
|
106
|
-
*/
|
|
107
|
-
unassignIssue(id: string, unassignedBy: string): Promise<IIssueDocument | null>;
|
|
108
|
-
/**
|
|
109
|
-
* Get issues by property with business logic
|
|
110
|
-
*/
|
|
111
|
-
getIssuesByProperty(propertyId: string, includeDeleted?: boolean): Promise<IIssueDocument[]>;
|
|
112
|
-
/**
|
|
113
|
-
* Get issues assigned to a user with business logic
|
|
114
|
-
*/
|
|
115
|
-
getIssuesByAssignee(assignedTo: string, includeDeleted?: boolean): Promise<IIssueDocument[]>;
|
|
116
|
-
/**
|
|
117
|
-
* Get issues by entity
|
|
118
|
-
*/
|
|
119
|
-
getIssuesByEntity(entityId: string, entityType: EntityType, includeDeleted?: boolean): Promise<IIssueDocument[]>;
|
|
120
|
-
/**
|
|
121
|
-
* Get issues by status
|
|
122
|
-
*/
|
|
123
|
-
getIssuesByStatus(status: IssueStatus, includeDeleted?: boolean): Promise<IIssueDocument[]>;
|
|
124
|
-
/**
|
|
125
|
-
* Get issues by priority
|
|
126
|
-
*/
|
|
127
|
-
getIssuesByPriority(priority: IssuePriority, includeDeleted?: boolean): Promise<IIssueDocument[]>;
|
|
128
|
-
/**
|
|
129
|
-
* Get overdue issues with business logic
|
|
130
|
-
*/
|
|
131
|
-
getOverdueIssues(includeDeleted?: boolean): Promise<IIssueDocument[]>;
|
|
132
|
-
/**
|
|
133
|
-
* Get upcoming issues (due within specified days)
|
|
134
|
-
*/
|
|
135
|
-
getUpcomingIssues(days?: number, includeDeleted?: boolean): Promise<IIssueDocument[]>;
|
|
136
|
-
/**
|
|
137
|
-
* Get issue statistics with business logic
|
|
138
|
-
*/
|
|
139
|
-
getIssueStatistics(propertyId?: string): Promise<{
|
|
140
|
-
total: number;
|
|
141
|
-
pending: number;
|
|
142
|
-
inProgress: number;
|
|
143
|
-
resolved: number;
|
|
144
|
-
closed: number;
|
|
145
|
-
overdue: number;
|
|
146
|
-
byPriority: Record<IssuePriority, number>;
|
|
147
|
-
byCategory: Record<IssuesCategory, number>;
|
|
148
|
-
}>;
|
|
149
|
-
/**
|
|
150
|
-
* Search issues with business logic
|
|
151
|
-
*/
|
|
152
|
-
searchIssues(searchTerm: string, filters?: {
|
|
153
|
-
propertyId?: string;
|
|
154
|
-
includeDeleted?: boolean;
|
|
155
|
-
limit?: number;
|
|
156
|
-
skip?: number;
|
|
157
|
-
}): Promise<IIssueDocument[]>;
|
|
158
|
-
private validateIssueData;
|
|
159
|
-
private validateFilters;
|
|
160
|
-
private validateUpdateData;
|
|
161
|
-
private validateStatusTransition;
|
|
162
|
-
private validatePriorityChange;
|
|
163
|
-
private determineDefaultPriority;
|
|
164
|
-
private applyBusinessRules;
|
|
165
|
-
private shouldUpdateStatusOnComment;
|
|
166
|
-
private calculateAverageResponseTime;
|
|
167
|
-
private calculateResolutionRate;
|
|
168
|
-
}
|