using Microsoft.Extensions.Logging;
using PARR.Constants;
using PARR.DAL.Context;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces;

namespace PARR.DAL.Services.Implementations
{
    internal class OrderStatusService : IOrderStatusService
    {
        private readonly DataContext dataContext;
        private readonly ILogger<OrderStatusService> logger;

        public OrderStatusService(DataContext dataContext, ILogger<OrderStatusService> logger)
        {
            this.dataContext = dataContext;
            this.logger = logger;
        }

        public IQueryable<OrderStatus> Get()
        {
            return dataContext.OrderStatuses;
        }


        public OrderStatusEnum GetOrderStatusByName(string statusName)
        {
            switch (statusName.Trim())
            {
                case "1-Направлен в группу":
                    return OrderStatusEnum.New;
                case "2-В работе":
                    return OrderStatusEnum.InWork;
                case "3-Приостановлен":
                    return OrderStatusEnum.Stop;
                case "4-Выполнен":
                    return OrderStatusEnum.Complete;
                case "5-Закрыт":
                    return OrderStatusEnum.Closed;
                default:
                    logger.LogWarning($"Не смог распознать статус наряда, вернул значение по умполчанию: {OrderStatusEnum.New.ToString()}, входящее значение: {statusName}");
                    return OrderStatusEnum.New;
            }
        }
    }
}
