From 6bf0568f2353c9820a9af181a2d7d00bb5de3adf Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Tue, 1 Sep 2026 16:04:38 +0100 Subject: [PATCH] Refactor stock transfer schema to improve location management - Removed the `toStockLocation` field from the `stockTransferLineSchema` to streamline the schema. - Introduced `fromLocation` and `toLocation` fields in the `stockTransferSchema` for better clarity in stock transfer processes. - Updated the text index to focus on `state.type` for improved search capabilities. --- .../schemas/inventory/stocktransfer.schema.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/database/schemas/inventory/stocktransfer.schema.js b/src/database/schemas/inventory/stocktransfer.schema.js index 2ea7bb0..3a1eb84 100644 --- a/src/database/schemas/inventory/stocktransfer.schema.js +++ b/src/database/schemas/inventory/stocktransfer.schema.js @@ -15,11 +15,6 @@ const stockTransferLineSchema = new Schema( required: true, }, quantity: { type: Number, required: true }, - toStockLocation: { - type: Schema.Types.ObjectId, - ref: 'stockLocation', - required: true, - }, toStockType: { type: String, required: false, @@ -37,18 +32,27 @@ const stockTransferLineSchema = new Schema( const stockTransferSchema = new Schema( { _reference: { type: String, default: () => generateId()() }, - name: { type: String, required: true }, state: { type: { type: String, required: true, default: 'draft' }, progress: { type: Number, required: false }, }, postedAt: { type: Date, required: false }, + fromLocation: { + type: Schema.Types.ObjectId, + ref: 'stockLocation', + required: true, + }, + toLocation: { + type: Schema.Types.ObjectId, + ref: 'stockLocation', + required: true, + }, lines: { type: [stockTransferLineSchema], default: [] }, }, { timestamps: true } ); -stockTransferSchema.index({ name: 'text' }); +stockTransferSchema.index({ 'state.type': 'text' }); stockTransferSchema.statics.stats = async function () { const [draft, posted] = await Promise.all([