using AsbCloudApp.Data;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace AsbCloudApp.Services
{
    public interface IWellService
    {
        Task<IEnumerable<WellDto>> GetWellsByCompanyAsync(int idCompany, CancellationToken token);
        Task<int?> UpdateWellAsync(int idWell, WellParamsDto dto, CancellationToken token = default);
        Task<IEnumerable<WellDto>> GetTransmittingWellsAsync(int idCompany, CancellationToken token);
        Task<bool> IsCompanyInvolvedInWellAsync(int idCompany, int idWell, CancellationToken token);
        Task<string> GetWellCaptionByIdAsync(int idWell, CancellationToken token);
        Task<IEnumerable<CompanyDto>> GetCompaniesAsync(int idWell, CancellationToken token);
        Task<WellDto> GetAsync(int idWell, CancellationToken token);
        bool IsCompanyInvolvedInWell(int idCompany, int idWell);
        string GetStateText(int state);
        DateTime GetLastTelemetryDate(int idWell);
    }
}