using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using AsbCloudApp.Data;
using AsbCloudApp.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace AsbCloudWebApi.Controllers;

/// <summary>
/// Ствол скважины
/// </summary>
[Authorize]
[ApiController]
[Route("api/[controller]")]
public class WellboreController : ControllerBase
{
	private readonly IWellboreService wellboreService;

	public WellboreController(IWellboreService wellboreService)
	{
		this.wellboreService = wellboreService;
	}

    /// <summary>
    /// Получение списка стволов скважин
    /// </summary>
    /// <param name="idsWells">Идентификаторы скважин</param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    [HttpGet]
	[ProducesResponseType(typeof(IEnumerable<WellboreDto>), StatusCodes.Status200OK)]
	public async Task<IActionResult> GetAllAsync([FromQuery] IEnumerable<int> idsWells,
		CancellationToken cancellationToken)
    {
		var result = await wellboreService.GetWellboresAsync(idsWells, cancellationToken);

        return Ok(result);
	}
}