const mongoose = require('mongoose') const ObjectID = mongoose.Schema.Types.ObjectId // Running balance snapshot per (item × warehouse) // Updated atomically on each transaction using $inc // Acts as a fast-read cache — transactions are the source of truth const warehouseItemStockSchema = new mongoose.Schema( { item: { type: ObjectID, ref: 'WarehouseItem', required: true, }, warehouse: { type: ObjectID, ref: 'Warehouse', required: true, }, quantity: { type: Number, default: 0, // current balance }, unit: { type: String, }, unitEn: { type: String, }, }, { timestamps: true, } ) // Guarantee one document per (item, warehouse) combination warehouseItemStockSchema.index({ item: 1, warehouse: 1 }, { unique: true }) const WarehouseItemStock = mongoose.model('WarehouseItemStock', warehouseItemStockSchema) module.exports = WarehouseItemStock