diff --git a/src/controllers/storeController.js b/src/controllers/storeController.js index dc4001b0..01c5fdcf 100644 --- a/src/controllers/storeController.js +++ b/src/controllers/storeController.js @@ -42,6 +42,10 @@ exports.installSignUp = async (request, reply) => { firstName, lastName, city, + designation, + reportingManager, + departmentName, + zone, createdBy, updatedBy, } = request.body; @@ -75,6 +79,10 @@ exports.installSignUp = async (request, reply) => { firstName, lastName, city, + designation, + reportingManager, + departmentName, + zone, createdBy, updatedBy, }); @@ -283,6 +291,10 @@ exports.addStore = async (request, reply) => { const { storename, phone, + zone, + departmentName, + designation, + reportingManager, contactPersonName, contactPersonPhone, emails, @@ -329,6 +341,10 @@ exports.addStore = async (request, reply) => { const store = new Store({ storename, phone, + zone, + departmentName, + designation, + reportingManager, contactPersonName, contactPersonPhone, storeId, @@ -374,12 +390,16 @@ exports.addSales = async (request, reply) => { username, emails, password, + zone, + departmentName, + designation, + reportingManager, profile, createdBy, updatedBy, } = request.body; - const { firstName, lastName ,address} = profile || {}; + const { firstName, lastName ,address,city,state,country,zip} = profile || {}; const existingStore = await Sales.findOne({ phone }); if (existingStore) { @@ -394,11 +414,19 @@ exports.addSales = async (request, reply) => { phone, address, emails, + zone, + departmentName, + designation, + reportingManager, services: { password: { bcrypt: hashedPassword } }, profile: { firstName, lastName, address, + city, + state, + country, + zip, ...profile, }, createdBy, @@ -476,7 +504,11 @@ exports.editSalesUser = async (request, reply) => { phone, emails, address, - profile, + profile, + zone, + reportingManager, + designation, + departmentName } = request.body; @@ -494,13 +526,21 @@ exports.editSalesUser = async (request, reply) => { existingSales.username = username || existingSales.username; existingSales.phone = phone || existingSales.phone; existingSales.emails = emails || existingSales.emails; + existingSales.zone = zone || existingSales.zone; + existingSales.reportingManager = reportingManager || existingSales.reportingManager; + existingSales.designation = designation || existingSales.designation; + existingSales.departmentName = departmentName || existingSales.departmentName; + if (profile) { existingSales.profile.firstName = profile.firstName || existingSales.profile.firstName; existingSales.profile.lastName = profile.lastName || existingSales.profile.lastName; existingSales.profile.address = profile.address || existingSales.profile.address; - + existingSales.profile.city = profile.city || existingSales.profile.city; + existingSales.profile.state = profile.state || existingSales.profile.state; + existingSales.profile.country = profile.country || existingSales.profile.country; + existingSales.profile.zip = profile.zip || existingSales.profile.zip; } @@ -536,7 +576,11 @@ exports.editStore = async (request, reply) => { description, startingPrice, password, - contactPersonPhone + contactPersonPhone, + zone, + reportingManager, + designation, + departmentName } = request.body; @@ -564,6 +608,10 @@ exports.editStore = async (request, reply) => { existingStore.description = description || existingStore.description; existingStore.startingPrice = startingPrice || existingStore.startingPrice; existingStore.contactPersonPhone = contactPersonPhone || existingStore.contactPersonPhone; + existingStore.zone = zone || existingStore.zone; + existingStore.reportingManager = reportingManager || existingStore.reportingManager; + existingStore.designation = designation || existingStore.designation; + existingStore.departmentName = departmentName || existingStore.departmentName; if (profile) { diff --git a/src/models/store.js b/src/models/store.js index 60db65ca..9e77588e 100644 --- a/src/models/store.js +++ b/src/models/store.js @@ -42,6 +42,11 @@ const installationschema = new mongoose.Schema({ address1: { type: String, default: null }, address2: { type: String, default: null }, city: { type: String, default: null }, + designation: { type: String, default: null }, + reportingManager: { type: String, default: null }, + departmentName: { type: String, default: null }, + zone: { type: String, default: null }, + profile: { state: { type: String, default: null }, @@ -123,6 +128,10 @@ const installationschema = new mongoose.Schema({ passwordResetCode: { type: Number, default: 11111 }, oneTimePasswordSetFlag: { type: Boolean, default: false }, emails: {type: String}, + designation: { type: String, default: null }, + reportingManager: { type: String, default: null }, + departmentName: { type: String, default: null }, + zone: { type: String, default: null }, services: { password: { bcrypt: { type: String, required: true } @@ -339,6 +348,10 @@ const salesSchema = new mongoose.Schema({ } }, description: { type: String, default: null }, + designation: { type: String, default: null }, + reportingManager: { type: String, default: null }, + departmentName: { type: String, default: null }, + zone: { type: String, default: null }, profile: { role: [{ type: String, default: "sales" }], firstName: { type: String, default: null }, diff --git a/src/routes/storeRoute.js b/src/routes/storeRoute.js index 126b74b6..d6543a17 100644 --- a/src/routes/storeRoute.js +++ b/src/routes/storeRoute.js @@ -31,6 +31,10 @@ module.exports = function (fastify, opts, next) { //name: { type: 'string' }, team: { type: 'string', default: null }, + zone: { type: 'string', default: null }, + designation: { type: 'string', default: null }, + reportingManager: { type: 'string', default: null }, + departmentName: { type: 'string', default: null }, manager: { type: 'string', default: null }, address: { type: 'string', default: null }, address1: { type: 'string', default: null }, @@ -102,6 +106,10 @@ fastify.post('/api/stores', { properties: { storename: { type: "string" }, password: {type: "string"}, + zone: { type: 'string', default: null }, + designation: { type: 'string', default: null }, + reportingManager: { type: 'string', default: null }, + departmentName: { type: 'string', default: null }, phone: { type: "string", unique: true, trim: true }, contactPersonName: { type: "string" }, contactPersonPhone: { type: "string", unique: true, trim: true }, @@ -143,6 +151,11 @@ fastify.post('/api/salesSignUp', { type: "object", properties: { username: { type: "string" }, + designation: { type: 'string', default: null }, + reportingManager: { type: 'string', default: null }, + departmentName: { type: 'string', default: null }, + zone: { type: 'string', default: null }, + phone: { type: "string" }, password: { type: "string" }, emails: { type: "string" }, @@ -153,6 +166,10 @@ fastify.post('/api/salesSignUp', { firstName: { type: "string" }, lastName: { type: "string" }, address: { type: "string" }, + city: { type: 'string', default: null }, + state: { type: 'string', default: null }, + zip: { type: 'string', default: null }, + country: { type: 'string', default: null }, }, required: ["firstName", "lastName"] } @@ -262,6 +279,10 @@ fastify.put('/api/editSalesUser/:salesId', { properties: { username: { type: "string" }, phone: { type: "string" }, + zone: { type: 'string', default: null }, + designation: { type: 'string', default: null }, + reportingManager: { type: 'string', default: null }, + departmentName: { type: 'string', default: null }, password: { type: "string" }, emails: { type: "string" }, address: { type: "string" }, @@ -270,7 +291,11 @@ fastify.put('/api/editSalesUser/:salesId', { properties: { firstName: { type: "string" }, lastName: { type: "string" }, - address: { type: "string" } + address: { type: "string" }, + city: { type: 'string', default: null }, + state: { type: 'string', default: null }, + zip: { type: 'string', default: null }, + country: { type: 'string', default: null }, }, } @@ -302,6 +327,10 @@ fastify.put('/api/editStore/:storeId', { address1: { type: "string" }, address2: { type: "string" }, emails: { type: "string" }, + zone: { type: 'string', default: null }, + designation: { type: 'string', default: null }, + reportingManager: { type: 'string', default: null }, + departmentName: { type: 'string', default: null }, profile: { type: "object", properties: { @@ -400,9 +429,9 @@ fastify.delete("/api/deleteInstaller/:installationId", { fastify.put("/api/updaeInstaller/:installationId", { schema: { - description: "Update user details by installationId", + description: "Update installer details by installationId", tags: ["Install Management"], - summary: "Update user", + summary: "Update installer details by installationId", params: { type: "object", properties: { @@ -417,6 +446,10 @@ fastify.put("/api/updaeInstaller/:installationId", { password: { type: "string" }, emails: { type: "array", items: { type: "object", properties: { email: { type: "string" } } } }, team: { type: "string" }, + zone: { type: 'string', default: null }, + designation: { type: 'string', default: null }, + reportingManager: { type: 'string', default: null }, + departmentName: { type: 'string', default: null }, manager: { type: "string" }, address: { type: "string" }, address1: { type: "string" },