in-app-notification-settings.ts 899 B

1234567891011121314151617181920
  1. import { getOrCreateModel } from '@growi/core';
  2. import { Schema, Model, Document } from 'mongoose';
  3. import { IInAppNotificationSettings, subscribeRuleNames } from '~/interfaces/in-app-notification';
  4. export interface InAppNotificationSettingsDocument extends IInAppNotificationSettings, Document {}
  5. export type InAppNotificationSettingsModel = Model<InAppNotificationSettingsDocument>
  6. const inAppNotificationSettingsSchema = new Schema<InAppNotificationSettingsDocument, InAppNotificationSettingsModel>({
  7. userId: { type: Schema.Types.ObjectId },
  8. subscribeRules: [
  9. {
  10. name: { type: String, required: true, enum: subscribeRuleNames },
  11. isEnabled: { type: Boolean },
  12. },
  13. ],
  14. });
  15. // eslint-disable-next-line max-len
  16. export default getOrCreateModel<InAppNotificationSettingsDocument, InAppNotificationSettingsModel>('InAppNotificationSettings', inAppNotificationSettingsSchema);