import mongoose, { ObjectId } from 'mongoose' import { updateIfCurrentPlugin } from 'mongoose-update-if-current' interface SheetAttributes { title: string; owner: string; createdAt?: Date; updatedAt?: Date; } const sheetSchema = new mongoose.Schema({ title: { type: String, required: true }, owner: { type: mongoose.Schema.Types.ObjectId, required: true } }, { toJSON: { transform (doc, ret) { ret.id = ret._id delete ret._id } } }) sheetSchema.set('versionKey', 'version') sheetSchema.plugin(updateIfCurrentPlugin) export const SheetModel = mongoose.model('Sheet', sheetSchema) export default class Sheet extends SheetModel { constructor(attributes: SheetAttributes) { super(attributes) } }