UNPKG

dt-common-device

Version:

A secure and robust device management library for IoT applications

114 lines (113 loc) 3.39 kB
import { IIssueDocument } from "./Issue.model"; import { CreateIssueData, UpdateIssueData, IssueStatus, IssuePriority, IssuesCategory, EntityType } from "./issue.types"; export declare class IssueRepository { /** * 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 */ findAll(filters?: { propertyId?: string; assignedTo?: string; status?: IssueStatus; priority?: IssuePriority; category?: IssuesCategory; entityType?: EntityType; entityId?: string; includeDeleted?: boolean; limit?: number; skip?: number; sort?: { [key: string]: 1 | -1; }; }): 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?: { propertyId?: string; assignedTo?: string; status?: IssueStatus; priority?: IssuePriority; category?: IssuesCategory; entityType?: EntityType; entityId?: string; includeDeleted?: boolean; }): Promise<number>; /** * Find issues by property */ findByProperty(propertyId: string, includeDeleted?: boolean): Promise<IIssueDocument[]>; /** * Find issues by assignee */ findByAssignee(assignedTo: string, includeDeleted?: boolean): Promise<IIssueDocument[]>; /** * Find issues by entity */ findByEntity(entityId: string, entityType: EntityType, includeDeleted?: boolean): Promise<IIssueDocument[]>; /** * Find issues by status */ findByStatus(status: IssueStatus, includeDeleted?: boolean): Promise<IIssueDocument[]>; /** * Find issues by priority */ findByPriority(priority: IssuePriority, 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; includeDeleted?: boolean; limit?: number; skip?: number; }): Promise<IIssueDocument[]>; /** * Get issue statistics */ getStatistics(propertyId?: 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>; }