Sfoglia il codice sorgente

Started working on the song and queueSong schema.

Kris 8 anni fa
parent
commit
21a4dfb18f
2 ha cambiato i file con 53 aggiunte e 0 eliminazioni
  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;
+};