zone datas delete function updates
This commit is contained in:
@@ -1,4 +1,9 @@
|
|||||||
import zoneModel from "../../../shared/model/builder/lines/zone-Model.ts";
|
import zoneModel from "../../../shared/model/builder/lines/zone-Model.ts";
|
||||||
|
import widget3dModel from "../../../shared/model/vizualization/3dwidget.ts";
|
||||||
|
import floatWidgetModel from "../../../shared/model/vizualization/floatWidget.ts";
|
||||||
|
import panelModel from "../../../shared/model/vizualization/panelmodel.ts";
|
||||||
|
import templateModel from "../../../shared/model/vizualization/templatemodel.ts";
|
||||||
|
import widgetModel from "../../../shared/model/vizualization/widgemodel.ts";
|
||||||
export const setZone = async (data: any) => {
|
export const setZone = async (data: any) => {
|
||||||
const { organization, userId, zoneData } = data
|
const { organization, userId, zoneData } = data
|
||||||
try {
|
try {
|
||||||
@@ -39,6 +44,35 @@ export const deleteZone = async (data: any) => {
|
|||||||
const deleteZone = await zoneModel(organization).findOneAndDelete(
|
const deleteZone = await zoneModel(organization).findOneAndDelete(
|
||||||
{ zoneId: zoneId, createdBy: userId }
|
{ zoneId: zoneId, createdBy: userId }
|
||||||
).select("-_id -__v")
|
).select("-_id -__v")
|
||||||
|
if (deleteZone) {
|
||||||
|
const panels = await panelModel(organization).find({ zoneId });
|
||||||
|
console.log('panels: ', panels);
|
||||||
|
|
||||||
|
// Collect all widget IDs from all panels
|
||||||
|
const allWidgetIds = panels.reduce((ids: string[], panel: any) => {
|
||||||
|
return ids.concat(panel.widgets || []);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
// Soft delete all widgets
|
||||||
|
await widgetModel(organization).updateMany(
|
||||||
|
{ _id: { $in: allWidgetIds } },
|
||||||
|
{ $set: { isArchive: true } }
|
||||||
|
);
|
||||||
|
|
||||||
|
// Soft delete all panels for the zone
|
||||||
|
await panelModel(organization).updateMany(
|
||||||
|
{ zoneId },
|
||||||
|
{ $set: { isArchive: true } }
|
||||||
|
);
|
||||||
|
|
||||||
|
// Soft delete from other models
|
||||||
|
await Promise.all([
|
||||||
|
widget3dModel(organization).updateMany({ zoneId }, { $set: { isArchive: true } }),
|
||||||
|
templateModel(organization).updateMany({ zoneId }, { $set: { isArchive: true } }),
|
||||||
|
floatWidgetModel(organization).updateMany({ zoneId }, { $set: { isArchive: true } }),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
return { success: true, message: 'zone deleted', data: deleteZone, organization: organization }
|
return { success: true, message: 'zone deleted', data: deleteZone, organization: organization }
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@@ -49,3 +83,59 @@ export const deleteZone = async (data: any) => {
|
|||||||
return { success: false, message: 'Zone not found', error, organization: organization }
|
return { success: false, message: 'Zone not found', error, organization: organization }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// export const zoneDatasDeleted = async (data: { organization: string; userId: string; zoneId: string }) => {
|
||||||
|
// const { organization, userId, zoneId } = data;
|
||||||
|
// console.log('data: ', data);
|
||||||
|
|
||||||
|
// try {
|
||||||
|
// const findZone = await zoneModel(organization).findOne({ zoneId });
|
||||||
|
|
||||||
|
// if (!findZone) {
|
||||||
|
// return { success: false, message: 'Invalid zone ID', organization };
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // Soft delete the zone
|
||||||
|
// const deleteZone = await zoneModel(organization).findOneAndDelete(
|
||||||
|
// { zoneId, createdBy: userId },
|
||||||
|
|
||||||
|
// );
|
||||||
|
|
||||||
|
// if (deleteZone) {
|
||||||
|
// const panels = await panelModel(organization).find({ zoneId });
|
||||||
|
// console.log('panels: ', panels);
|
||||||
|
|
||||||
|
// // Collect all widget IDs from all panels
|
||||||
|
// const allWidgetIds = panels.reduce((ids: string[], panel: any) => {
|
||||||
|
// return ids.concat(panel.widgets || []);
|
||||||
|
// }, []);
|
||||||
|
// console.log('allWidgetIds: ', allWidgetIds);
|
||||||
|
|
||||||
|
// // Soft delete all widgets
|
||||||
|
// await widgetModel(organization).updateMany(
|
||||||
|
// { _id: { $in: allWidgetIds } },
|
||||||
|
// { $set: { isArchive: true } }
|
||||||
|
// );
|
||||||
|
|
||||||
|
// // Soft delete all panels for the zone
|
||||||
|
// await panelModel(organization).updateMany(
|
||||||
|
// { zoneId },
|
||||||
|
// { $set: { isArchive: true } }
|
||||||
|
// );
|
||||||
|
|
||||||
|
// // Soft delete from other models
|
||||||
|
// await Promise.all([
|
||||||
|
// widget3dModel(organization).updateMany({ zoneId }, { $set: { isArchive: true } }),
|
||||||
|
// templateModel(organization).updateMany({ zoneId }, { $set: { isArchive: true } }),
|
||||||
|
// floatWidgetModel(organization).updateMany({ zoneId }, { $set: { isArchive: true } }),
|
||||||
|
// ]);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// console.log("Zone and associated data archived");
|
||||||
|
// return { success: true, message: 'Zone and associated data archived', data: deleteZone, organization };
|
||||||
|
|
||||||
|
// return { success: true, message: 'Zone and associated data deleted', data: deleteZone, organization };
|
||||||
|
// } catch (error) {
|
||||||
|
// console.error('Zone deletion error:', error);
|
||||||
|
// return { success: false, message: 'An error occurred while deleting the zone', error, organization };
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
|||||||
Reference in New Issue
Block a user