import mongoose, { Schema, Document } from 'mongoose'; import { CalendarEvent } from '@caldav/shared'; export interface EventDocument extends Omit, Document {} const EventSchema = new Schema( { userId: { type: String, required: true, index: true, }, title: { type: String, required: true, trim: true, }, description: { type: String, trim: true, }, startTime: { type: Date, required: true, }, endTime: { type: Date, required: true, }, note: { type: String, }, isRecurring: { type: Boolean, default: false, }, recurrenceRule: { type: String, }, }, { timestamps: true, toJSON: { transform: (_, ret: Record) => { ret.id = String(ret._id); delete ret._id; delete ret.__v; return ret; }, }, } ); EventSchema.index({ userId: 1, startTime: 1, endTime: 1 }); export const EventModel = mongoose.model('Event', EventSchema);