| 
					
				 | 
			
			
				@@ -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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 |