dt-common-device
Version:
A secure and robust device management library for IoT applications
29 lines (28 loc) • 1.85 kB
TypeScript
import mongoose, { Model } from "mongoose";
import { EntityType, IssueStatus, IssuePriority, IssueDocument as IIssueDocument, CreateIssueData, UpdateIssueData, AddCommentData } from "../../../types/issue.types";
interface IIssueMethods {
addComment(commentData: AddCommentData): void;
updateComment(commentId: string, content: string, userId: string): boolean;
removeComment(commentId: string): boolean;
resolve(resolvedBy: string): void;
reopen(updatedBy: string): void;
assign(userId: string, assignedBy: string): void;
unassign(unassignedBy: string): void;
}
interface IIssueModel extends Model<IIssueDocument, {}, IIssueMethods> {
findByProperty(propertyId: string, includeDeleted?: boolean): Promise<IIssueDocument[]>;
findByAssignee(assignedTo: string, includeDeleted?: boolean): Promise<IIssueDocument[]>;
findByEntity(entityId: string, entityType: EntityType, includeDeleted?: boolean): Promise<IIssueDocument[]>;
findByStatus(status: IssueStatus, includeDeleted?: boolean): Promise<IIssueDocument[]>;
findByPriority(priority: IssuePriority, includeDeleted?: boolean): Promise<IIssueDocument[]>;
findOverdue(includeDeleted?: boolean): Promise<IIssueDocument[]>;
findUpcoming(days?: number, includeDeleted?: boolean): Promise<IIssueDocument[]>;
}
declare const IssueSchema: mongoose.Schema<IIssueDocument, IIssueModel, IIssueMethods, {}, {}, {}, mongoose.DefaultSchemaOptions, IIssueDocument, mongoose.Document<unknown, {}, mongoose.FlatRecord<IIssueDocument>, {}> & Omit<mongoose.FlatRecord<IIssueDocument> & Required<{
_id: string;
}> & {
__v: number;
}, keyof IIssueMethods> & IIssueMethods>;
export declare const IssueModel: IIssueModel;
export { IssueSchema };
export type { IIssueDocument, CreateIssueData, UpdateIssueData, AddCommentData, IIssueMethods, IIssueModel, };