const catchAsync = require('../../globalErrorHandler/catchAsync') const warehouseItemService = require('./warehouseItemService') // ─── ITEMS ──────────────────────────────────────────────────────────────────── exports.createItem = catchAsync(async (req, res, next) => { const item = await warehouseItemService.createItem(req.body) res.status(201).json({ status: 'success', data: item }) }) exports.listItems = catchAsync(async (req, res, next) => { const result = await warehouseItemService.listItems(req.query) res.status(200).json({ status: 'success', ...result }) }) exports.getItem = catchAsync(async (req, res, next) => { const item = await warehouseItemService.getItem(req.params.itemId) res.status(200).json({ status: 'success', data: item }) }) exports.updateItem = catchAsync(async (req, res, next) => { const item = await warehouseItemService.updateItem(req.params.itemId, req.body) res.status(200).json({ status: 'success', data: item }) }) exports.deleteItem = catchAsync(async (req, res, next) => { await warehouseItemService.deleteItem(req.params.itemId) res.status(200).json({ status: 'success', data: null }) }) // ─── TRANSACTIONS ───────────────────────────────────────────────────────────── exports.createTransaction = catchAsync(async (req, res, next) => { const transaction = await warehouseItemService.createTransaction(req.body, req.user) res.status(201).json({ status: 'success', data: transaction }) }) exports.listTransactions = catchAsync(async (req, res, next) => { const result = await warehouseItemService.listTransactions(req.query) res.status(200).json({ status: 'success', ...result }) }) exports.deleteTransaction = catchAsync(async (req, res, next) => { await warehouseItemService.deleteTransaction(req.params.transactionId) res.status(200).json({ status: 'success', data: null }) }) // ─── STOCK ──────────────────────────────────────────────────────────────────── exports.getStockByItem = catchAsync(async (req, res, next) => { const result = await warehouseItemService.getStockByItem(req.params.itemId) res.status(200).json({ status: 'success', data: result }) }) exports.getStockByWarehouse = catchAsync(async (req, res, next) => { const stocks = await warehouseItemService.getStockByWarehouse(req.params.warehouseId) res.status(200).json({ status: 'success', results: stocks.length, data: stocks }) }) exports.getTotalStock = catchAsync(async (req, res, next) => { const result = await warehouseItemService.getTotalStock() res.status(200).json({ status: 'success', results: result.length, data: result }) })