using Marco.Pms.Model.Dtos.Inventory; using Marco.Pms.Services.Service.ServiceInterfaces; using MarcoBMS.Services.Helpers; using MarcoBMS.Services.Service; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Marco.Pms.Services.Controllers { [Authorize] [Route("api/[controller]")] [ApiController] public class InventoryController : ControllerBase { private readonly IInventoryService _inventoryService; private readonly UserHelper _userHelper; private readonly ILoggingService _logger; private readonly Guid tenantId; public InventoryController(IInventoryService inventoryService, UserHelper userHelper, ILoggingService logger) { _inventoryService = inventoryService; _userHelper = userHelper; _logger = logger; tenantId = userHelper.GetTenantId(); } #region =================================================================== Items APIs =================================================================== [HttpGet("item/list")] [HttpGet("item/details/{id}")] [HttpPost("item/create")] public async Task CreateItem([FromBody] ItemDto model) { var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync(); var response = await _inventoryService.CreateItemAsync(model, loggedInEmployee, tenantId); return StatusCode(response.StatusCode, response); } [HttpPut("item/edit/{id}")] [HttpDelete("item/delete/{id}")] public async Task SuspendItem(Guid id, [FromQuery] bool isActive = false) { var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync(); var response = await _inventoryService.SuspendItemAsync(id, isActive, loggedInEmployee, tenantId); return StatusCode(response.StatusCode, response); } #endregion } }