const mongoose = require('mongoose'); const culturalElementSchema = new mongoose.Schema({ element: { type: String, required: true }, description: { type: String, required: true }, significance: { type: String, required: true } }); const sourceTextSchema = new mongoose.Schema({ title: { type: String, required: true }, content: { type: String, required: true }, sourceLanguage: { type: String, required: true }, sourceType: { type: String, enum: ['api', 'manual', 'practice', 'tutorial', 'weekly-practice'], default: 'manual' }, category: { type: String, enum: ['practice', 'tutorial', 'weekly-practice'], required: true }, weekNumber: { type: Number, required: function() { return this.category !== 'practice'; } }, translationBrief: { type: String }, imageUrl: { type: String }, imageAlt: { type: String }, imageSize: { type: Number, default: 200 }, imageAlignment: { type: String, enum: ['left', 'center', 'right'], default: 'center' }, culturalElements: [culturalElementSchema], difficulty: { type: String, enum: ['beginner', 'intermediate', 'advanced'], default: 'intermediate' }, tags: [String], targetCultures: [String], isActive: { type: Boolean, default: true }, usageCount: { type: Number, default: 0 }, averageRating: { type: Number, default: 0 }, ratingCount: { type: Number, default: 0 } }, { timestamps: true }); module.exports = mongoose.model('SourceText', sourceTextSchema);