Sindbad~EG File Manager
import db from "../../model/index";
import mongoose from "mongoose";
const User = new mongoose.Schema(
{
first_name: { type: String, required: true },
last_name: { type: String, required: true },
contact_type: { type: String, required: false },
customer_type: { type: String, required: false },
current_status: { type: String, required: false },
location: { type: String, required: true },
profile_picture: { type: String, require: false, default: "" },
email: { type: String, require: true },
password: { type: String, require: true },
email_signature: { type: String, require: false, default: "" },
role: {
type: String,
enum: ["agent", "admin"],
default: "agent",
},
createdOn: { type: Date, default: Date.now },
modifiedOn: { type: Date, default: Date.now },
},
{
toJSON: { virtuals: true },
toObject: { virtuals: true },
}
);
User.index({
first_name: "text",
last_name: "text",
email: "text",
location: "text",
});
User.pre("remove", async function (next) {
try {
console.log("Removing");
await db.Address.deleteMany({ user_id: this._id });
await db.BasicContactInfo.deleteMany({ user_id: this._id });
await db.Goal.deleteMany({ user_id: this._id });
await db.SocialMedia.deleteMany({ user_id: this._id });
await db.Policy.deleteMany({ user_id: this._id });
await db.EmailSetup.deleteMany({ user_id: this._id });
await db.EmployeeInfo.deleteMany({ user_id: this._id });
await db.EmploymentInfo.deleteMany({ user_id: this._id });
await db.Signature.deleteMany({ user_id: this._id });
await db.System.deleteMany({ user_id: this._id });
next();
} catch (err) {
next(err);
}
});
export default mongoose.model("User", User);
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists