// user-subscription.js // Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; const mongoose = require('mongoose'); const Schema = mongoose.Schema; const SubscriptionSchema = new Schema({ client: { type: Schema.ObjectId, required: true, ref: 'OAuth2Client' }, emitterId: { type: Schema.ObjectId }, }); SubscriptionSchema.index({ client: 1, emitterId: 1, }, { name: 'subscription_client_emitter', }); const UserSubscriptionSchema = new Schema({ user: { type: Schema.ObjectId, required: true, unique: true, ref: 'User' }, subscriptions: { type: [SubscriptionSchema] }, }); module.exports = (conn) => { return conn.model('UserSubscription', UserSubscriptionSchema); };