|
|
|
const mongoose = require("mongoose");
|
|
|
|
const Schema = mongoose.Schema;
|
|
|
|
const ObjectId = Schema.Types.ObjectId;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const citySchema = new mongoose.Schema(
|
|
|
|
{
|
|
|
|
cityId:{type:String},
|
|
|
|
//departmentName: { type: String },
|
|
|
|
phone: { type: String, unique: true, trim: true },
|
|
|
|
office_address1: String,
|
|
|
|
officeName: { type: String },
|
|
|
|
email: { type: String },
|
|
|
|
address2: String,
|
|
|
|
pincode: { type: String },
|
|
|
|
zone: { type: String },
|
|
|
|
city: { type: String },
|
|
|
|
location: [{ type : String}],
|
|
|
|
state: String,
|
|
|
|
country: String,
|
|
|
|
services: { password: { bcrypt: String } },
|
|
|
|
createdAt: {
|
|
|
|
type: Date,
|
|
|
|
default: function () {
|
|
|
|
return Date.now();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
createdBy: ObjectId,
|
|
|
|
updatedAt: {
|
|
|
|
type: Date,
|
|
|
|
default: function () {
|
|
|
|
return Date.now();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
updatedBy: ObjectId,
|
|
|
|
},
|
|
|
|
{ versionKey: false }
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
const branchSchema = new mongoose.Schema(
|
|
|
|
{
|
|
|
|
branchId:{type:String},
|
|
|
|
phone: { type: String, unique: true, trim: true },
|
|
|
|
land_line_number: { type: String, unique: true, trim: true },
|
|
|
|
office_address1: String,
|
|
|
|
officeName: { type: String },
|
|
|
|
email: { type: String },
|
|
|
|
address2: String,
|
|
|
|
pincode: { type: String },
|
|
|
|
zone: { type: String , default: "ALL"},
|
|
|
|
city: { type: String },
|
|
|
|
location: [{ type : String}],
|
|
|
|
state: String,
|
|
|
|
country: String,
|
|
|
|
services: { password: { bcrypt: String } },
|
|
|
|
createdAt: {
|
|
|
|
type: Date,
|
|
|
|
default: function () {
|
|
|
|
return Date.now();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
createdBy: ObjectId,
|
|
|
|
updatedAt: {
|
|
|
|
type: Date,
|
|
|
|
default: function () {
|
|
|
|
return Date.now();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
updatedBy: ObjectId,
|
|
|
|
},
|
|
|
|
{ versionKey: false }
|
|
|
|
);
|
|
|
|
|
|
|
|
const departmentsSchema = new mongoose.Schema(
|
|
|
|
{
|
|
|
|
departmentId:{type:String},
|
|
|
|
officeName: { type: String },
|
|
|
|
desginationName: { type: String },
|
|
|
|
phone: { type: String, unique: true, trim: true },
|
|
|
|
alternativeContactNumber : { type: String },
|
|
|
|
reportingManager : { type: String },
|
|
|
|
reportingManager_mobile_number : { type: String },
|
|
|
|
reportingManager_email : { type: String },
|
|
|
|
location: [{ type : String}],
|
|
|
|
firstName : { type: String },
|
|
|
|
gender: { type: String },
|
|
|
|
lastName: { type: String },
|
|
|
|
email: { type: String },
|
|
|
|
personalEmail : {type: String},
|
|
|
|
departmentName: { type: String },
|
|
|
|
address1: String,
|
|
|
|
address2: String,
|
|
|
|
pincode: { type: String },
|
|
|
|
zone: { type: String },
|
|
|
|
city: { type: String },
|
|
|
|
personal_city: { type: String },
|
|
|
|
state: String,
|
|
|
|
country: String,
|
|
|
|
services: { password: { bcrypt: String } },
|
|
|
|
createdAt: {
|
|
|
|
type: Date,
|
|
|
|
default: function () {
|
|
|
|
return Date.now();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
createdBy: ObjectId,
|
|
|
|
updatedAt: {
|
|
|
|
type: Date,
|
|
|
|
default: function () {
|
|
|
|
return Date.now();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
updatedBy: ObjectId,
|
|
|
|
},
|
|
|
|
{ versionKey: false }
|
|
|
|
);
|
|
|
|
|
|
|
|
const teamMemberProfilePictureSchema = new Schema({
|
|
|
|
departmentId: {
|
|
|
|
type: String,
|
|
|
|
unique: true,
|
|
|
|
required: true
|
|
|
|
},
|
|
|
|
picture: {
|
|
|
|
type: String, // Change the type to String
|
|
|
|
required: true,
|
|
|
|
validate: {
|
|
|
|
validator: function (value) {
|
|
|
|
const supportedFormats = ['jpg', 'jpeg', 'png'];
|
|
|
|
const fileExtension = value.split('.').pop().toLowerCase();
|
|
|
|
return supportedFormats.includes(fileExtension);
|
|
|
|
},
|
|
|
|
message: 'Picture must be a JPEG, PNG, or JPG image'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
const companyProfilePictureSchema = new Schema({
|
|
|
|
customerId: {
|
|
|
|
type: String,
|
|
|
|
unique: true,
|
|
|
|
required: true
|
|
|
|
},
|
|
|
|
picture: {
|
|
|
|
type: String, // Change the type to String
|
|
|
|
required: true,
|
|
|
|
validate: {
|
|
|
|
validator: function (value) {
|
|
|
|
const supportedFormats = ['jpg', 'jpeg', 'png'];
|
|
|
|
const fileExtension = value.split('.').pop().toLowerCase();
|
|
|
|
return supportedFormats.includes(fileExtension);
|
|
|
|
},
|
|
|
|
message: 'Picture must be a JPEG, PNG, or JPG image'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const City = mongoose.model('City', citySchema);
|
|
|
|
const Deparments = mongoose.model('Deparments', departmentsSchema);
|
|
|
|
const Branch = mongoose.model('Branch', branchSchema);
|
|
|
|
const TeamMemberProfilePicture = mongoose.model('TeamMemberProfilePicture', teamMemberProfilePictureSchema);
|
|
|
|
const CompanyProfilePicture = mongoose.model('CompanyProfilePicture', companyProfilePictureSchema);
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = { City,Deparments,Branch,TeamMemberProfilePicture,CompanyProfilePicture};
|