UNPKG

dt-common-device

Version:

A secure and robust device management library for IoT applications

90 lines (89 loc) 2.73 kB
import { IIssueDocument } from "./Issue.model"; import { CreateIssueData, UpdateIssueData, IssuePriority, IssuesCategory, IIssueQuery } from "./issue.types"; export declare class IssueRepository { private buildQuery; private buildOptions; /** * Create a new issue */ create(issueData: CreateIssueData): Promise<IIssueDocument>; /** * Find issue by ID */ findById(id: string, includeDeleted?: boolean): Promise<IIssueDocument | null>; /** * Find all issues with filters */ query(filters?: IIssueQuery): Promise<IIssueDocument[]>; /** * Update an issue */ update(id: string, updateData: UpdateIssueData): Promise<IIssueDocument | null>; /** * Soft delete an issue */ softDelete(id: string, deletedBy: string): Promise<boolean>; /** * Permanently delete an issue */ hardDelete(id: string): Promise<boolean>; /** * Count issues with filters */ count(filters?: IIssueQuery): Promise<number>; /** * Find issues by assignee */ findByAssignee(assignedTo: string, includeDeleted?: boolean): Promise<IIssueDocument[]>; /** * Find overdue issues */ findOverdue(includeDeleted?: boolean): Promise<IIssueDocument[]>; /** * Find upcoming issues */ findUpcoming(days?: number, includeDeleted?: boolean): Promise<IIssueDocument[]>; /** * Search issues by text */ search(searchTerm: string, filters?: { propertyId?: string; zoneId?: string; includeDeleted?: boolean; limit?: number; skip?: number; }): Promise<IIssueDocument[]>; /** * Get issue statistics */ getStatistics(propertyId?: string, zoneId?: string): Promise<{ total: number; pending: number; inProgress: number; resolved: number; closed: number; overdue: number; byPriority: Record<IssuePriority, number>; byCategory: Record<IssuesCategory, number>; }>; /** * Bulk update issues */ bulkUpdate(ids: string[], updateData: Partial<UpdateIssueData>): Promise<number>; /** * Bulk soft delete issues */ bulkSoftDelete(ids: string[], deletedBy: string): Promise<number>; /** * Find issues by zone ID */ findByZoneId(zoneId: string, includeDeleted?: boolean): Promise<IIssueDocument[]>; /** * Find issues by zone ID and status */ findByZoneIdAndStatus(zoneId: string, status: string, includeDeleted?: boolean): Promise<IIssueDocument[]>; /** * Find issues by multiple zone IDs */ findByZoneIds(zoneIds: string[], includeDeleted?: boolean): Promise<IIssueDocument[]>; }