import axios from 'axios'; export async function beforeSave(data, getChanges, modelOrigin) { try { const changes = data.updates; if (!changes) return data; const patchPromises = []; for (const change of changes) { let patchData = {}; if ('hasMinPrice' in change.data) { patchData.hasMinPrice = change.data?.hasMinPrice; delete change.data.hasMinPrice; } if ('minPrice' in change.data) { patchData.minPrice = change.data?.minPrice; delete change.data.minPrice; } if (Object.keys(patchData).length > 0) { const promise = axios .get(`${modelOrigin}/findOne`, { params: { filter: { fields: ['itemFk'], where: { id: change.where.id }, }, }, }) .then((row) => { return axios.patch(`Items/${row.data.itemFk}`, patchData); }) .catch((error) => { console.error('Error processing change: ', change, error); }); patchPromises.push(promise); } } await Promise.all(patchPromises); data.updates = changes.filter((change) => Object.keys(change.data).length > 0); return data; } catch (error) { console.error('Error in beforeSave:', error); throw error; } }