using Microsoft.AspNetCore.Authorization;

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using MTWorkHR.Application.Identity;
using MTWorkHR.Application.Models;
using MTWorkHR.Application.Services.Interfaces;
using MTWorkHR.Identity.Services;

namespace MTWorkHR.API.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class LookupController : ControllerBase
    {
        private readonly ILookupService _LookupService;
        public LookupController(ILookupService UserLookupService)
        {
            this._LookupService = UserLookupService;
        }
        [HttpGet("GetAllLeaveType")]
        [ProducesResponseType(StatusCodes.Status200OK)]

        public async Task<ActionResult<List<LeaveTypeDto>>> GetAllLeaveType()
        {
            return await _LookupService.GetAllLeaveType();
        }
        [HttpGet("GetAllOrderType")]
        [ProducesResponseType(StatusCodes.Status200OK)]

        public async Task<ActionResult<List<OrderTypeDto>>> GetAllOrderType()
        {
            return await _LookupService.GetAllOrderType();
        }

        [HttpGet("GetAllCountries")]
        [ProducesResponseType(StatusCodes.Status200OK)]

        public async Task<ActionResult<List<CountryDto>>> GetAllCountries()
        {
            return await _LookupService.GetAllCountries();
        }

        [HttpGet("GetAllIndustries")]
        [ProducesResponseType(StatusCodes.Status200OK)]

        public async Task<ActionResult<List<IndustryDto>>> GetAllIndustries()
        {
            return await _LookupService.GetAllIndustries();
        }

        [HttpGet("GetAllJobTitles")]
        [ProducesResponseType(StatusCodes.Status200OK)]

        public async Task<ActionResult<List<JobTitleDto>>> GetAllJobTitles()
        {
            return await _LookupService.GetAllJobTitles();
        }

        [HttpGet("CreateCountries")]
        [ProducesResponseType(StatusCodes.Status200OK)]

        public async Task<ActionResult<List<CountryDto>>> CreateCountries()
        {
            return await _LookupService.CreateCountries();
        }
    }
}