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