import { Snowflake } from "discord.js" ; import { Document , model , Schema } from "mongoose" ; import DBWrapper from "./db-wrapper" ; export interface reminderInterface extends Document { userID : Snowflake ; reminder : string ; startTime : Date ; endTime : Date ; createdAt : Date ; updatedAt : Date ; } const reminderSchema = new Schema < reminderInterface > ( { userID : String , reminder : String , startTime : Date , endTime : Date , } , { timestamps : true } ) ; export const reminderModel = model < reminderInterface > ( "Reminder" , reminderSchema ) ; export class DBReminder extends DBWrapper < Partial < reminderInterface > , reminderInterface > { protected getOrCreate ( reminder ) { throw new Error ( "Method not implemented." ) ; } async create ( reminder ) { const newReminder = await new reminderModel ( reminder ) ; return newReminder . save ( ) ; } async delete ( reminder ) { await reminderModel . findOneAndDelete ( { userID : reminder . userID , reminder : reminder . reminder , startTime : reminder . startTime , endTime : reminder . endTime , } ) ; return ; } async getUsersReminders ( userID ) { return reminderModel . find ( { userID : userID } ) ; } }