diff --git a/src/schemas/channel/channelSchema.js b/src/schemas/channel/channelSchema.js
index bbf72c5..0ae1dbb 100644
--- a/src/schemas/channel/channelSchema.js
+++ b/src/schemas/channel/channelSchema.js
@@ -30,7 +30,7 @@ const emoteModel = require('../emoteSchema');
const channelPermissionSchema = require('./channelPermissionSchema');
const channelBanSchema = require('./channelBanSchema');
const queuedMediaSchema = require('./media/queuedMediaSchema');
-const playlistSchema = require('./media/playlistSchema');
+const playlistSchema = require('./media/playlist/playlistSchema');
const chatSchema = require('./chatSchema');
//Utils
const { exceptionHandler, errorHandler } = require('../../utils/loggerUtils');
diff --git a/src/schemas/channel/media/playlist/channelPlaylistSchema.js b/src/schemas/channel/media/playlist/channelPlaylistSchema.js
new file mode 100644
index 0000000..e6d7bc7
--- /dev/null
+++ b/src/schemas/channel/media/playlist/channelPlaylistSchema.js
@@ -0,0 +1,40 @@
+/*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 .*/
+
+//NPM Imports
+const {mongoose} = require('mongoose');
+
+//Local Imports
+const playlistSchema = require('./playlistSchema');
+
+/**
+ * DB Schema for Documents representing channel playlists
+ */
+const channelPlaylistProperties = new mongoose.Schema({
+ channel: {
+ type: mongoose.SchemaTypes.ObjectID,
+ ref: "channel",
+ required: true
+ }
+},
+{
+ discriminatorKey: 'location'
+});
+//Create 'channelPlaylistSchema' as descriminator of playlistSchema
+var channelPlaylistSchema = playlistSchema.discriminator('channel', channelPlaylistProperties);
+
+//Export mongoose model based on channelPlaylistSchema
+module.exports = mongoose.model("channelPlaylists", channelPlaylistSchema);
\ No newline at end of file
diff --git a/src/schemas/channel/media/playlistMediaSchema.js b/src/schemas/channel/media/playlist/playlistMediaSchema.js
similarity index 95%
rename from src/schemas/channel/media/playlistMediaSchema.js
rename to src/schemas/channel/media/playlist/playlistMediaSchema.js
index 4a61829..7cab31b 100644
--- a/src/schemas/channel/media/playlistMediaSchema.js
+++ b/src/schemas/channel/media/playlist/playlistMediaSchema.js
@@ -18,8 +18,8 @@ along with this program. If not, see .*/
const {mongoose} = require('mongoose');
//Local Imports
-const mediaSchema = require('./mediaSchema');
-const media = require('../../../app/channel/media/media');
+const mediaSchema = require('../mediaSchema');
+const media = require('../../../../app/channel/media/media');
/**
* DB Schema for documents represnting a piece of media held in a playlist
diff --git a/src/schemas/channel/media/playlistSchema.js b/src/schemas/channel/media/playlist/playlistSchema.js
similarity index 99%
rename from src/schemas/channel/media/playlistSchema.js
rename to src/schemas/channel/media/playlist/playlistSchema.js
index e78ce9e..5246605 100644
--- a/src/schemas/channel/media/playlistSchema.js
+++ b/src/schemas/channel/media/playlist/playlistSchema.js
@@ -34,6 +34,9 @@ const playlistSchema = new mongoose.Schema({
required: false,
default: []
}]
+},
+{
+ discriminatorKey: 'location'
});
//methods
diff --git a/src/schemas/channel/media/playlist/userPlaylistSchema.js b/src/schemas/channel/media/playlist/userPlaylistSchema.js
new file mode 100644
index 0000000..1dedcdc
--- /dev/null
+++ b/src/schemas/channel/media/playlist/userPlaylistSchema.js
@@ -0,0 +1,40 @@
+/*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 .*/
+
+//NPM Imports
+const {mongoose} = require('mongoose');
+
+//Local Imports
+const playlistSchema = require('./playlistSchema');
+
+/**
+ * DB Schema for Documents representing user playlists
+ */
+const userPlaylistProperties = new mongoose.Schema({
+ user:{
+ type: mongoose.SchemaTypes.ObjectID,
+ ref: "user",
+ required: true
+ }
+},
+{
+ discriminatorKey: 'location'
+});
+//Create 'userPlaylistSchema' as descriminator of playlistSchema
+var userPlaylistSchema = playlistSchema.discriminator('user', userPlaylistProperties);
+
+//Export mongoose model based on userPlaylistSchema
+module.exports = mongoose.model("userPlaylists", userPlaylistSchema);
\ No newline at end of file
diff --git a/src/schemas/user/userSchema.js b/src/schemas/user/userSchema.js
index 783b241..32e9f6c 100644
--- a/src/schemas/user/userSchema.js
+++ b/src/schemas/user/userSchema.js
@@ -27,7 +27,7 @@ const flairModel = require('../flairSchema');
const permissionModel = require('../permissionSchema');
const emoteModel = require('../emoteSchema');
const emailChangeModel = require('./emailChangeSchema');
-const playlistSchema = require('../channel/media/playlistSchema');
+const playlistSchema = require('../channel/media/playlist/playlistSchema');
const rememberMeModel = require('./rememberMeSchema');
//Utils
const hashUtil = require('../../utils/hashUtils');