Source

models/Metadata.model.js

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);