Classroom Model
Overview
The classroom.model.js file defines the Mongoose schema for the classrooms collection in the MongoDB database. It specifies the structure and properties of a classroom document.
Dependencies
mongoose: The ODM library for MongoDB.mongoose-delete: A Mongoose plugin for soft-deleting documents.
Schema Definition
The classroomSchema has the following fields:
roomNumber: A number representing the room number of the classroom. This field is required.capacity: A number representing the capacity of the classroom. This field is required.isLab: A boolean indicating whether the classroom is a lab. It defaults tofalse.scanner: A reference to thescannerscollection, representing the scanner associated with the classroom. This field is required.
Timestamps
The schema is configured with timestamps: true, which automatically adds createdAt and updatedAt fields to each document.
Collection Name
The collection name is explicitly set to classrooms.
Soft Deletes
The mongoose-delete plugin is used to enable soft deletes for the Classroom model. This means that when a document is "deleted," it is not actually removed from the database. Instead, a deleted field is set to true, and a deletedAt field is added with the timestamp of the deletion.
Model
The Classroom model is created from the schema and exported for use in other parts of the application.
Exports
Classroom: The Mongoose model for theclassroomscollection.