// 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 = mongoose.model('UserSubscription', UserSubscriptionSchema);