- 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
27 lines
1.7 KiB
JavaScript
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
|