import mongoose, { Schema } from "mongoose";
/**
* Metadata schema describing investigation catalog entries.
* @category Models
*/
const MetadataSchema = new Schema({
grade: {
type: String,
required: true,
},
unit: {
type: String,
required: true,
},
unitName: {
type: String,
required: true,
},
unitShortDescription: {
type: String,
required: true,
},
tags: {
type: (Array),
required: true,
default: [],
},
objectsList: {
type: (Array),
required: true,
default: [],
},
objectives: {
type: String,
required: true,
},
lessonNumber: {
type: Number,
required: true,
},
lessonTitle: {
type: String,
required: true,
default: "-",
},
lessonDescription: {
type: String,
required: true,
default: "-",
},
lessonDays: {
type: (Array),
required: true,
},
lessonNGSS: {
type: String,
required: true,
default: "-",
},
hasInvestigation: {
type: Boolean,
required: true,
},
goals: {
type: String,
required: true,
default: "-",
},
generation_comment: {
type: String,
required: true,
default: "-",
},
});
/* Indexes for better performance */
MetadataSchema.index({ unit: 1, lessonNumber: 1 });
/**
* Metadata model exposing catalog metadata persistence APIs.
* @category Models
*/
export const Metadata = mongoose.model("Metadata", MetadataSchema);
Source