dt-common-device
Version:
A secure and robust device management library for IoT applications
171 lines (170 loc) • 4.33 kB
TypeScript
export declare enum IssuesCategory {
OPERATIONS = "OPERATIONS",
SECURITY = "SECURITY",
ENERGY = "ENERGY",
OTHER = "OTHER"
}
export declare enum EntityType {
ZONE = "ZONE",
DEVICE = "DEVICE",
ACCESS_GROUP = "ACCESS_GROUP",
USER = "USER",
INTEGRATION = "INTEGRATION",
PROPERTY = "PROPERTY",
HUB = "HUB",
SCHEDULE = "SCHEDULE",
OTHER = "OTHER",
CLOUD_DEVICE_ACCOUNT = "CLOUD_DEVICE_ACCOUNT",
CLOUD_PMS_ACCOUNT = "CLOUD_PMS_ACCOUNT"
}
export declare enum EntitySubType {
ZONE = "ZONE",
GUEST_CODE = "GUEST_CODE",
STAFF_CODE = "STAFF_CODE",
EMERGENCY_CODE = "EMERGENCY_CODE",
VENDOR_CODE = "VENDOR_CODE",
LOCK = "LOCK",
HUB = "HUB",
TV = "TV",
THERMOSTAT = "THERMOSTAT",
ON_PREM_SERVER = "ON_PREM_SERVER",
CLOUDBEDS = "CLOUDBEDS",
STAYNTOUCH = "STAYNTOUCH",
HOTELKEY = "HOTELKEY",
YANOLJA = "YANOLJA",
SKYTOUCH = "SKYTOUCH",
SMOOBU = "SMOOBU",
MEWS = "MEWS",
WEBREZPRO = "WEBREZPRO",
SMARTTHINGS = "SMARTTHINGS",
TTLOCK = "TTLOCK",
TUYA = "TUYA",
VERDANT = "VERDANT",
SENSIBO = "SENSIBO",
DORMKABA = "DORMKABA",
DUSAW = "DUSAW",
YALEWIFI = "YALEWIFI",
SALTOKS = "SALTOKS",
SALTOSPACE = "SALTOSPACE",
SCHLAGE = "SCHLAGE",
LOCKLY = "LOCKLY"
}
export declare enum IssueStatus {
PENDING = "PENDING",
IN_PROGRESS = "IN_PROGRESS",
RESOLVED = "RESOLVED",
CLOSED = "CLOSED",
CANCELLED = "CANCELLED",
ON_HOLD = "ON_HOLD",
IGNORED = "IGNORED"
}
export declare enum IssuePriority {
LOW = "LOW",
HIGH = "HIGH",
CRITICAL = "CRITICAL"
}
export interface IssueComment {
id: string;
userId: string;
content: string;
createdAt: Date;
updatedAt?: Date;
}
export declare enum IssueType {
BATTERY_LOW = "BATTERY_LOW",
DEVICE_OFFLINE = "DEVICE_OFFLINE",
HUB_OFFLINE = "HUB_OFFLINE",
ACCOUNT_UNAUTHORIZED = "ACCOUNT_UNAUTHORIZED",
ACCOUNT_MISSING_DEVICE = "ACCOUNT_MISSING_DEVICE",
LOCK_JAMMED = "LOCK_JAMMED",
DEVICE_MALFUNCTION = "DEVICE_MALFUNCTION",
NO_GUEST_CODES = "NO_GUEST_CODES",
JUST_ENOUGH_GUEST_CODES = "JUST_ENOUGH_GUEST_CODES",
LOW_GUEST_CODES = "LOW_GUEST_CODES",
PMS_CODE_NOT_DELIVERED = "PMS_CODE_NOT_DELIVERED",
SCHEDULE_CODE_NOT_ASSIGNED = "SCHEDULE_CODE_NOT_ASSIGNED"
}
export interface IssueDocument {
id: string;
category: IssuesCategory;
propertyId: string;
zoneId?: string;
zoneName?: string;
title: string;
description: string;
entityId?: string;
entityType: EntityType;
entitySubType: EntitySubType;
status: IssueStatus;
priority: IssuePriority;
type: IssueType;
assignedTo?: string;
createdBy: string;
updatedBy?: string;
isDeleted: boolean;
createdAt: Date;
updatedAt: Date;
resolvedAt?: Date;
dueDate?: Date;
comments?: IssueComment[];
}
export interface CreateIssueData {
category: IssuesCategory;
propertyId: string;
zoneId?: string;
zoneName?: string;
title: string;
description: string;
entityId: string;
entityType: EntityType;
entitySubType: EntitySubType;
type: IssueType;
priority?: IssuePriority;
assignedTo?: string;
createdBy: string;
dueDate?: Date;
}
export interface UpdateIssueData {
category?: IssuesCategory;
title?: string;
description?: string;
entityId?: string;
entityType?: EntityType;
entitySubType?: EntitySubType;
status?: IssueStatus;
type?: IssueType;
priority?: IssuePriority;
assignedTo?: string;
updatedBy?: string;
updatedAt?: Date;
resolvedAt?: Date;
dueDate?: Date;
isDeleted?: boolean;
zoneId?: string;
}
export interface AddCommentData {
userId: string;
content: string;
}
export interface IIssueQuery {
id?: string;
propertyId?: string;
zoneId?: string;
zoneName?: string;
assignedTo?: string;
status?: IssueStatus;
priority?: IssuePriority;
type?: IssueType | IssueType[];
category?: IssuesCategory;
entityType?: EntityType;
entitySubType?: EntitySubType;
entityId?: string;
includeDeleted?: boolean;
startDate?: string;
endDate?: string;
limit?: number;
skip?: number;
sort?: {
[key: string]: 1 | -1;
};
}