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

namespace AsbCloudApp.Services
{
    public interface IWellService: ICrudService<WellDto>
    {
        Task<IEnumerable<WellDto>> GetWellsByCompanyAsync(int idCompany, CancellationToken token);
        Task<bool> IsCompanyInvolvedInWellAsync(int idCompany, int idWell, CancellationToken token);
        Task<string> GetWellCaptionByIdAsync(int idWell, CancellationToken token);
        //TODO: remove that
        Task<IEnumerable<CompanyDto>> GetCompaniesAsync(int idWell, CancellationToken token);        
        bool IsCompanyInvolvedInWell(int idCompany, int idWell);
        string GetStateText(int state);
        DateTime GetLastTelemetryDate(int idWell);
        Task<IEnumerable<int>> GetClusterWellsIdsAsync(int idWell, CancellationToken token);
    }
}