RaptusBackend / models /UserModel.js
GitHub Actions
Initial commit
df72131
const { ObjectId } = require("bson");
const { default: mongoose } = require("mongoose");
const Schema = mongoose.Schema;
const userSchema = new Schema({
Timestamp: {
type: Date,
default: Date.now,
required: true,
},
Name: {
type: String,
required: [true, "Name is required."],
},
Email: {
type: String,
required: [true, "Email is required."],
unique: true,
match: [/^[^\s@]+@[^\s@]+\.[^\s@]+$/, "Please provide a valid email address."],
},
RollNumber: {
type: Number,
validate: {
validator: function (value) {
return /\d{9}/.test(value);
},
message: "Please provide a valid Roll Number.",
},
unique: true,
required: [true, "Roll number is required."],
},
PhoneNumber: {
type: String,
validate: {
validator: function (value) {
return /\d{10}/.test(value);
},
message: "Please provide a valid 10-digit phone number.",
},
required: [true, "Phone number is required."],
unique: true,
},
TeamID: {
type: Schema.Types.ObjectId,
ref: "Team",
},
Branch: {
type: String,
required: [true, "Branch is required"],
},
Year: {
type: String,
enum: ["First", "Second", "Third", "Fourth"],
required: [true, "Year is required"],
},
DiscordID: {
type: String,
required: [true, "Discord ID is required."],
unique: true
},
Password: {
type: String,
required: [true, "Password is required."],
},
Role: {
type: String,
default: "Member",
},
RoomID: {
type: Schema.Types.ObjectId,
ref: "Room",
},
});
userSchema.virtual("url").get(function () {
return `/users/${this._id}`;
});
module.exports = mongoose.model("User", userSchema);