station.js 1011 B

12345678910111213141516171819202122232425
  1. module.exports = mongoose => {
  2. const Schema = mongoose.Schema;
  3. const stationSchema = new Schema({
  4. id: { type: String, lowercase: true, max: 16, min: 2, index: true, unique: true, required: true },
  5. type: { type: String, enum: ["official", "community"], required: true},
  6. displayName: { type: String, min: 2, max: 32, required: true },
  7. description: { type: String, min: 2, max: 128, required: true },
  8. paused: { type: Boolean, default: false, required: true },
  9. currentSong: {
  10. id: { type: String, length: 11, index: true, unique: true, required: true },
  11. title: { type: String, required: true },
  12. artists: [{ type: String, min: 1 }],
  13. duration: { type: Number, required: true },
  14. thumbnail: { type: String, required: true }
  15. },
  16. currentSongIndex: { type: Number, default: 0, required: true },
  17. timePaused: { type: Number, default: 0, required: true },
  18. playlist: { type: Object, required: true },
  19. genres: [{ type: String }]
  20. });
  21. return mongoose.model('station', stationSchema);
  22. };