From 22befe977ef961ee573dc460a129437348a3862f Mon Sep 17 00:00:00 2001 From: Bhaskar Date: Fri, 28 Mar 2025 13:59:04 +0530 Subject: [PATCH] material recieved pictures --- src/controllers/installationController.js | 14 +++++++++-- src/models/store.js | 30 ++++++++++++++++++++++- src/routes/installationRoute.js | 12 +++++++-- 3 files changed, 51 insertions(+), 5 deletions(-) diff --git a/src/controllers/installationController.js b/src/controllers/installationController.js index de78f043..0ffdda97 100644 --- a/src/controllers/installationController.js +++ b/src/controllers/installationController.js @@ -3,7 +3,7 @@ const bcrypt = require('bcrypt'); const jwt = require('jsonwebtoken'); const customJwtAuth = require("../customAuthJwt"); const { Deparments } = require("../models/Department"); -const { Install, SensorStock, SensorQuotation, Order, Insensors, MasterSlaveData, ElectrictyWorkPictures, PlumbingWorkPictures } = require("../models/store"); +const { Install, SensorStock, SensorQuotation, Order, Insensors, MasterSlaveData, ElectrictyWorkPictures, PlumbingWorkPictures, MaterialRecievedPictures } = require("../models/store"); const { Counter } = require("../models/User"); const { IotData, Tank } = require("../models/tanks"); const fastify = require("fastify")({ @@ -716,6 +716,15 @@ exports.createMasterSlaveData = async (req, reply) => { ? plumbingWorkData.pictureUrl.map(pic => ({ url: pic.url, uploadedAt: new Date() })) : []; + const materialRecievedData = await MaterialRecievedPictures.findOne({ + installationId, + customerId + }); + + const materialRecievedPictures = materialRecievedData + ? materialRecievedData.pictureUrl.map(pic => ({ url: pic.url, uploadedAt: new Date() })) + : []; + // 🔹 Save all data to MasterSlaveData const newData = new MasterSlaveData({ installationId, @@ -731,7 +740,8 @@ exports.createMasterSlaveData = async (req, reply) => { plumbingWork, loraCheck, electricityWorkPictures, - plumbingWorkPictures + plumbingWorkPictures, + materialRecievedPictures }); await newData.save(); diff --git a/src/models/store.js b/src/models/store.js index 68b3e764..c71292b4 100644 --- a/src/models/store.js +++ b/src/models/store.js @@ -677,6 +677,12 @@ const masterSlaveDataSchema = new mongoose.Schema({ uploadedAt: { type: Date, default: Date.now } } ], + materialRecievedPictures: [ + { + url: { type: String }, + uploadedAt: { type: Date, default: Date.now } + } + ], loraCheck: { type: String }, }, { @@ -725,11 +731,33 @@ const plumbingWorkPicturesSchema = new Schema({ } }); +const materialRecievedPicturesSchema = new Schema({ + installationId: { + type: String, + //required: true, + //unique: true + }, + customerId: { + type: String, + //required: true + }, + pictureUrl: [{ + url: { + type: String, + }, + }], + createdAt: { + type: Date, + default: Date.now + } +}); + const Iotprice = mongoose.model('Iotprice', iotpriceSchema); const Insensors = mongoose.model('Insensors', insensorsSchema); const MasterSlaveData = mongoose.model('MasterSlaveData', masterSlaveDataSchema); const ElectrictyWorkPictures = mongoose.model('ElectrictyWorkPictures', electrictyWorkPicturesSchema); const PlumbingWorkPictures = mongoose.model('PlumbingWorkPictures', plumbingWorkPicturesSchema); + const MaterialRecievedPictures = mongoose.model('MaterialRecievedPictures', materialRecievedPicturesSchema); const Order = mongoose.model('Order', orderSchema); @@ -752,4 +780,4 @@ const Iotprice = mongoose.model('Iotprice', iotpriceSchema); - module.exports = {PlumbingWorkPictures,ElectrictyWorkPictures,MasterSlaveData,SensorStock,Order,EstimationOrder,Iotprice,Sales, Install,Survey, ProfilePictureInstall, SensorQuotation,generateinstallationId,Store,ProfilePictureStore,WaterLeverSensor,MotorSwitchSensor,Insensors,generatequatationId, HardwareCart, ServiceCart}; + module.exports = {MaterialRecievedPictures,PlumbingWorkPictures,ElectrictyWorkPictures,MasterSlaveData,SensorStock,Order,EstimationOrder,Iotprice,Sales, Install,Survey, ProfilePictureInstall, SensorQuotation,generateinstallationId,Store,ProfilePictureStore,WaterLeverSensor,MotorSwitchSensor,Insensors,generatequatationId, HardwareCart, ServiceCart}; diff --git a/src/routes/installationRoute.js b/src/routes/installationRoute.js index d93f64c9..56456f27 100644 --- a/src/routes/installationRoute.js +++ b/src/routes/installationRoute.js @@ -306,8 +306,16 @@ module.exports = function (fastify, opts, next) { electricityWork: { type: "string" }, plumbingWork: { type: "string" }, loraCheck: { type: "string" }, - - // ✅ Removing `format: "uri"` + materialRecievedPictures: { + type: "array", + items: { + type: "object", + properties: { + url: { type: "string", description: "Image URL" }, // No format validation + uploadedAt: { type: "string", format: "date-time", description: "Upload timestamp" } + } + } + }, electricityWorkPictures: { type: "array", items: {