Spaces:
Running
Running
| const mongoose = require('mongoose'); | |
| const lessonSchema = new mongoose.Schema({ | |
| title: { type: String, required: true }, | |
| content: { type: String, required: true }, | |
| videoUrl: String, | |
| duration: Number, // in minutes | |
| resources: [{ | |
| title: String, | |
| url: String | |
| }], | |
| quiz: { type: mongoose.Schema.Types.ObjectId, ref: 'Quiz' } | |
| }, { timestamps: true }); | |
| const courseSchema = new mongoose.Schema({ | |
| title: { type: String, required: true }, | |
| description: { type: String, required: true }, | |
| instructor: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true }, | |
| category: { type: String, required: true }, | |
| level: { type: String, enum: ['beginner', 'intermediate', 'advanced'], required: true }, | |
| price: { type: Number, default: 0 }, | |
| thumbnail: { type: String, required: true }, | |
| lessons: [lessonSchema], | |
| studentsEnrolled: { type: Number, default: 0 }, | |
| rating: { type: Number, default: 0 }, | |
| requirements: [String], | |
| whatYouWillLearn: [String], | |
| isFeatured: { type: Boolean, default: false }, | |
| createdAt: { type: Date, default: Date.now } | |
| }); | |
| module.exports = mongoose.model('Course', courseSchema); |