song.js 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. module.exports = mongoose => {
  2. var Schema = mongoose.Schema;
  3. var songSchema = new Schema({
  4. _id: { type: String, length: 11, index: true, unique: true, required: true },
  5. title: { type: String, required: true },
  6. artists: [{ type: String, min: 1 }],
  7. duration: { type: Number, required: true },
  8. skipDuration: { type: Number, required: true },
  9. image: { type: String, required: true },
  10. likes: { type: Number, required: true },
  11. dislikes: { type: Number, required: true },
  12. genres: [{ type: String }],
  13. acceptedBy: { type: String, required: true },
  14. acceptedAt: { type: Date, required: true },
  15. requestedBy: { type: String, required: true },
  16. requestedAt: { type: Date, required: true },
  17. reports: [{
  18. reportedBy: { type: String, required: true },
  19. reportedAt: { type: Date, required: true },
  20. reason: [{
  21. type: { type: String, enum: ["title", "artist", "image", "duration", "video"], required: true },
  22. message: { type: String, default: "" }
  23. }],
  24. resolved: { type: Boolean, required: true, default: false },
  25. resolvedBy: { type: String },
  26. resolvedAt: { type: String }
  27. }]
  28. });
  29. return songSchema;
  30. };