dt-common-device
Version:
A secure and robust device management library for IoT applications
25 lines (24 loc) • 1.47 kB
TypeScript
import mongoose, { Model } from "mongoose";
import { IssueDocument as IIssueDocument, CreateIssueData, UpdateIssueData, AddCommentData } from "./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> {
findByAssignee(assignedTo: string, 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>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & Omit<mongoose.FlatRecord<IIssueDocument> & {
_id: mongoose.Types.ObjectId;
} & {
__v: number;
}, keyof IIssueMethods> & IIssueMethods>;
export declare const IssueModel: IIssueModel;
export { IssueSchema };
export type { IIssueDocument, CreateIssueData, UpdateIssueData, AddCommentData, IIssueMethods, IIssueModel, };