From 0748256ce8725216b36572ce86c3c5fbc42c76a8 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sun, 21 Jun 2026 23:59:34 +0100 Subject: [PATCH] Refactor filament schema recalculation logic to use filamentSku model instead of orderItem model. This change improves the efficiency of recalculating SKUs associated with a filament. --- .../schemas/management/filament.schema.js | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/database/schemas/management/filament.schema.js b/src/database/schemas/management/filament.schema.js index 1570a87..1642abc 100644 --- a/src/database/schemas/management/filament.schema.js +++ b/src/database/schemas/management/filament.schema.js @@ -25,19 +25,10 @@ filamentSchema.virtual('id').get(function () { filamentSchema.set('toJSON', { virtuals: true }); filamentSchema.statics.recalculate = async function (filament, user) { - const orderItemModel = mongoose.model('orderItem'); - const itemId = filament._id; - const draftOrderItems = await orderItemModel - .find({ - 'state.type': 'draft', - itemType: 'filament', - item: itemId, - }) - .populate('order') - .lean(); - - for (const orderItem of draftOrderItems) { - await orderItemModel.recalculate(orderItem, user); + const filamentSkuModel = mongoose.model('filamentSku'); + const skus = await filamentSkuModel.find({ filament: filament._id }).select('_id').lean(); + for (const sku of skus) { + await filamentSkuModel.recalculate(sku, user); } };