const mongoose = require('mongoose') const ObjectID = mongoose.Schema.Types.ObjectId const warehouseItemTransactionSchema = new mongoose.Schema( { item: { type: ObjectID, ref: 'WarehouseItem', required: true, }, warehouse: { type: ObjectID, ref: 'Warehouse', required: true, }, type: { type: String, enum: ['IN', 'OUT'], // ورود / خروج required: true, }, quantity: { type: Number, required: true, min: [0.001, 'مقدار باید بیشتر از صفر باشد'], }, unit: { type: String, required: true, // واحد — کپی از آیتم در زمان تراکنش }, unitEn: { type: String, }, reason: { type: String, required: true, // دلیل تراکنش — مثال: خرید، مصرف در پروژه، برگشت کالا }, actor: { type: ObjectID, ref: 'User', required: true, }, actorName: { type: String, // ذخیره برای نمایش سریع }, note: { type: String, // توضیحات اضافی }, date: { type: Date, default: Date.now, }, }, { timestamps: true, } ) warehouseItemTransactionSchema.index({ item: 1, warehouse: 1 }) warehouseItemTransactionSchema.index({ item: 1, type: 1 }) warehouseItemTransactionSchema.index({ warehouse: 1, date: -1 }) warehouseItemTransactionSchema.index({ actor: 1 }) warehouseItemTransactionSchema.index({ date: -1 }) const WarehouseItemTransaction = mongoose.model('WarehouseItemTransaction', warehouseItemTransactionSchema) module.exports = WarehouseItemTransaction