Преглед на файлове

Started working on the song and queueSong schema.

Kris преди 8 години
родител
ревизия
21a4dfb18f
променени са 2 файла, в които са добавени 53 реда и са изтрити 0 реда
  1. 20 0
      backend/schemas/queueSong.js
  2. 33 0
      backend/schemas/song.js

+ 20 - 0
backend/schemas/queueSong.js

@@ -0,0 +1,20 @@
+module.exports = mongoose => {
+
+	var Schema = mongoose.Schema;
+
+	var queueSongSchema = new Schema({
+		_id: { type: String, length: 11, index: true, unique: true, required: true },
+		title: { type: String, required: true },
+		artists: [{ type: String, min: 1 }],
+		duration: { type: Number, required: true },
+		skipDuration: { type: Number, required: true, default: 0 },
+		image: { type: String, required: true },
+		likes: { type: Number, required: true },
+		dislikes: { type: Number, required: true },
+		genres: [{ type: String }],
+		requestedBy: { type: String, required: true },
+		requestedAt: { type: Date, required: true },
+	});
+
+	return queueSongSchema;
+};

+ 33 - 0
backend/schemas/song.js

@@ -0,0 +1,33 @@
+module.exports = mongoose => {
+
+	var Schema = mongoose.Schema;
+
+	var songSchema = new Schema({
+		_id: { type: String, length: 11, index: true, unique: true, required: true },
+		title: { type: String, required: true },
+		artists: [{ type: String, min: 1 }],
+		duration: { type: Number, required: true },
+		skipDuration: { type: Number, required: true },
+		image: { type: String, required: true },
+		likes: { type: Number, required: true },
+		dislikes: { type: Number, required: true },
+		genres: [{ type: String }],
+		acceptedBy: { type: String, required: true },
+		acceptedAt: { type: Date, required: true },
+		requestedBy: { type: String, required: true },
+		requestedAt: { type: Date, required: true },
+		reports: [{
+			reportedBy: { type: String, required: true },
+			reportedAt: { type: Date, required: true },
+			reason: [{
+				type: { type: String, enum: ["title", "artist", "image", "duration", "video"], required: true },
+				message: { type: String, default: "" }
+			}],
+			resolved: { type: Boolean, required: true, default: false },
+			resolvedBy: { type: String },
+			resolvedAt: { type: String }
+		}]
+	});
+
+	return songSchema;
+};