Created playlist queue schema.

This commit is contained in:
rainbow napkin 2025-02-15 18:33:07 -05:00
parent 8a273d8055
commit cb09c139c7
6 changed files with 43 additions and 5 deletions

View file

@ -30,6 +30,7 @@ const emoteModel = require('../emoteSchema');
const channelPermissionSchema = require('./channelPermissionSchema');
const channelBanSchema = require('./channelBanSchema');
const queuedMediaSchema = require('./media/queuedMediaSchema');
const playlistSchema = require('./media/playlistSchema');
//Utils
const { exceptionHandler, errorHandler } = require('../../utils/loggerUtils');
@ -102,7 +103,9 @@ const channelSchema = new mongoose.Schema({
media: {
nowPlaying: queuedMediaSchema,
scheduled: [queuedMediaSchema],
//We should consider moving archived media and channel playlists to their own collections/models for preformance sake
archived: [queuedMediaSchema],
playlists: [playlistSchema]
},
//Thankfully we don't have to keep track of alts, ips, or deleted users so this should be a lot easier than site-wide bans :P
banList: [channelBanSchema]

View file

@ -0,0 +1,34 @@
/*Canopy - The next generation of stoner streaming software
Copyright (C) 2024-2025 Rainbownapkin and the TTN Community
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.*/
//NPM Imports
const {mongoose} = require('mongoose');
//Local Imports
const mediaSchema = require('./mediaSchema');
module.exports = new mongoose.Schema({
name: {
type: mongoose.SchemaTypes.String,
required: true,
},
media: [mediaSchema],
defaultTitles:[{
type: mongoose.SchemaTypes.String,
required: true,
default: []
}]
});

View file

@ -37,6 +37,7 @@ const queuedProperties = new mongoose.Schema({
uuid: {
type: mongoose.SchemaTypes.UUID,
required: true,
unique: true
}
},
{