using Microsoft.AspNetCore.Mvc;
using OI.Metrology.Shared.Models.Stateless;

namespace OI.Metrology.Server.ApiControllers;

[ApiController]
[Route("api/[controller]")]
public class ServiceShopOrderController : ControllerBase, IServiceShopOrderController<ActionResult>
{

    private readonly IServiceShopOrderRepository _ServiceShopOrderRepository;

    public ServiceShopOrderController(IServiceShopOrderRepository ServiceShopOrderRepository) => _ServiceShopOrderRepository = ServiceShopOrderRepository;

    [HttpGet(nameof(IServiceShopOrderController<ActionResult>.Action.All))]
    public async Task<ActionResult> GetAllServiceShopOrders()
    {
        try
        {
            Shared.ViewModels.ServiceShopOrder[] results = await _ServiceShopOrderRepository.GetAllServiceShopOrders();
            return Ok(results);
        }
        catch (Exception)
        {
            return StatusCode(StatusCodes.Status500InternalServerError,
                "Error retrieving data from the database");
        }
    }

    [HttpGet]
    [Route("{id}")]
    public async Task<ActionResult> GetServiceShopOrders(string id)
    {
        try
        {
            Shared.ViewModels.ServiceShopOrder[] results = await _ServiceShopOrderRepository.GetServiceShopOrders(id);
            return Ok(results);
        }
        catch (Exception)
        {
            return StatusCode(StatusCodes.Status500InternalServerError,
                "Error retrieving data from the database");
        }
    }

}