// connect-token.js // Copyright (C) 2024 DTP Technologies, LLC // All Rights Reserved 'use strict'; import mongoose from 'mongoose'; const Schema = mongoose.Schema; const RESOURCE_TYPE_LIST = [ 'Channel', 'User', ]; const ConnectTokenSchema = new Schema({ created: { type: Date, default: Date.now, required: true, index: -1, expires: '2m' }, token: { type: String, required: true, index: 1 }, userType: { type: String, enum: ['User', 'CoreUser'] }, user: { type: Schema.ObjectId, ref: 'User', }, consumerType: { type: String, enum: ['Channel', 'User'], required: true }, consumer: { type: Schema.ObjectId, required: true, index: true, refPath: 'consumerType' }, resourceType: { type: String, enum: RESOURCE_TYPE_LIST }, resource: { type: Schema.ObjectId, refPath: 'resourceType' }, claimed: { type: Date }, }); export default mongoose.model('ConnectToken', ConnectTokenSchema);