diff --git a/src/database/schemas/misc/usersettings.schema.js b/src/database/schemas/misc/usersettings.schema.js new file mode 100644 index 0000000..44d8c07 --- /dev/null +++ b/src/database/schemas/misc/usersettings.schema.js @@ -0,0 +1,41 @@ +import mongoose from 'mongoose'; +import { generateId } from '../../utils.js'; +const { Schema } = mongoose; + +const userSettingsSchema = new mongoose.Schema({ + _reference: { type: String, default: () => generateId()() }, + user: { + type: Schema.Types.ObjectId, + ref: 'user', + required: true, + unique: true, + }, + defaults: { + viewMode: { type: Schema.Types.Mixed, default: () => ({}) }, + filterSidebarVisibility: { + type: Schema.Types.Mixed, + default: () => ({}), + }, + columnVisibility: { type: Schema.Types.Mixed, default: () => ({}) }, + collapseState: { type: Schema.Types.Mixed, default: () => ({}) }, + }, + + createdAt: { + type: Date, + required: true, + default: Date.now, + }, + updatedAt: { + type: Date, + required: true, + default: Date.now, + }, +}); + +userSettingsSchema.virtual('id').get(function () { + return this._id; +}); + +userSettingsSchema.set('toJSON', { virtuals: true }); + +export const userSettingsModel = mongoose.model('userSettings', userSettingsSchema);