49 lines
2.0 KiB
C#

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<IActionResult> 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<IActionResult> 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
}
}