Files
mbmanager-api/components/warehouseItem/warehouseItemRoutes.js
T
kavehhn a9432b96c0 ADD: Warehouse inventory management system
- Add WarehouseItem model with bilingual names (FA/EN) and bilingual counting units
- Add WarehouseItemTransaction model for IN/OUT movements with reason and actor
- Add WarehouseItemStock model for denormalized per-(item×warehouse) running balance
- Add warehouseItemService with full CRUD, atomic stock updates via $inc, negative stock guard, and aggregation queries for per-item/per-warehouse/total stock
- Add warehouseItemController and REST routes at /api/warehouse-items
- Add warehouseService, warehouseController, warehouseRoutes for warehouse location CRUD at /api/warehouses
- Register both route groups in routerEndpoints.js
2026-08-11 20:09:10 +03:30

27 lines
1.7 KiB
JavaScript

const express = require('express')
const warehouseItemController = require('./warehouseItemController')
const loginCheck = require('../../middlewares/loginCheck')
const router = new express.Router()
router.use(loginCheck.loginProtect)
// ─── Items ────────────────────────────────────────────────────────────────────
router.get('/admin/items', warehouseItemController.listItems)
router.post('/admin/items', warehouseItemController.createItem)
router.get('/admin/items/:itemId', warehouseItemController.getItem)
router.patch('/admin/items/:itemId', warehouseItemController.updateItem)
router.delete('/admin/items/:itemId', warehouseItemController.deleteItem)
// ─── Transactions ─────────────────────────────────────────────────────────────
router.get('/admin/transactions', warehouseItemController.listTransactions)
router.post('/admin/transactions', warehouseItemController.createTransaction)
router.delete('/admin/transactions/:transactionId', warehouseItemController.deleteTransaction)
// ─── Stock ────────────────────────────────────────────────────────────────────
router.get('/admin/stock/total', warehouseItemController.getTotalStock)
router.get('/admin/stock/by-item/:itemId', warehouseItemController.getStockByItem)
router.get('/admin/stock/by-warehouse/:warehouseId', warehouseItemController.getStockByWarehouse)
module.exports = router