lecture.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. const mongoose = require("mongoose");
  2. const AnswerSchema = new mongoose.Schema({
  3. name: {
  4. type: String,
  5. required: true
  6. },
  7. content: {
  8. type: String,
  9. required: true
  10. },
  11. createdAt: {
  12. type: Date,
  13. default: new Date()
  14. }
  15. });
  16. const QuestionSchema = new mongoose.Schema({
  17. name: String,
  18. title: {
  19. type: String,
  20. required: true
  21. },
  22. content: {
  23. type: String,
  24. required: true,
  25. minlength: 15
  26. },
  27. answers: [AnswerSchema],
  28. createdAt: {
  29. type: Date,
  30. default: new Date()
  31. }
  32. });
  33. const LectureSchema = new mongoose.Schema({
  34. course: {
  35. type: mongoose.Schema.Types.ObjectId,
  36. ref: "Course",
  37. required: true
  38. },
  39. title: {
  40. type: String,
  41. required: true
  42. },
  43. video: {
  44. type: String,
  45. required: true
  46. },
  47. description: {
  48. type: String,
  49. required: true,
  50. },
  51. furtherReading: [{
  52. text: String,
  53. link: String
  54. }],
  55. documents: [{
  56. name: String,
  57. link: String
  58. }],
  59. exercises: [String],
  60. createdDate: {
  61. type: Date,
  62. default: new Date(),
  63. required: true
  64. },
  65. updatedDate: {
  66. type: Date,
  67. required: false
  68. },
  69. questions: [QuestionSchema]
  70. });
  71. module.exports = {
  72. Lecture: mongoose.model("Lecture", LectureSchema),
  73. Question: mongoose.model("Question", QuestionSchema),
  74. Answer: mongoose.model("Answer", AnswerSchema)
  75. };