using AsbCloudApp.Data; using AsbCloudApp.Requests; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services; /// <summary> /// сервис скважин /// </summary> public interface IWellService : ICrudRepository<WellDto> { /// <summary> /// сервис телеметрии /// </summary> ITelemetryService TelemetryService { get; } /// <summary> /// Список скважин доступных компании /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<WellDto>> GetAsync(WellRequest request, CancellationToken token); /// <summary> /// Статистика по скважине /// </summary> /// <param name="idWell"></param> /// <param name="token"></param> /// <returns></returns> Task<WellMapInfoWithTelemetryStat?> GetOrDefaultStatAsync(int idWell, CancellationToken token); /// <summary> /// проверяет доступ к скважине для компании /// </summary> /// <param name="idCompany"></param> /// <param name="idWell"></param> /// <param name="token"></param> /// <returns></returns> Task<bool> IsCompanyInvolvedInWellAsync(int idCompany, int idWell, CancellationToken token); //TODO: remove that /// <summary> /// получить название скважины по id /// </summary> /// <param name="idWell"></param> /// <param name="token"></param> /// <returns></returns> Task<string> GetWellCaptionByIdAsync(int idWell, CancellationToken token); /// <summary> /// список компаний участвующих в скважине /// </summary> /// <param name="idWell"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<CompanyDto>> GetCompaniesAsync(int idWell, CancellationToken token); //TODO: remove that /// <summary> /// /// </summary> /// <param name="state"></param> /// <returns></returns> string GetStateText(int state); /// <summary> /// дата получения последних данных от панели /// </summary> /// <param name="idWell"></param> /// <returns></returns> DateTimeOffset GetLastTelemetryDate(int idWell); //TODO: выяснить и удалить отсюда /// <summary> /// получение списка скважин куста в котором находится указанная скважина /// </summary> /// <param name="idWell"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<int>> GetClusterWellsIdsAsync(int idWell, CancellationToken token); /// <summary> /// часовой пояс скважины /// </summary> /// <param name="idWell"></param> /// <returns></returns> SimpleTimezoneDto GetTimezone(int idWell); /// <summary> /// диапазон дат с данными телеметрии /// </summary> /// <param name="idWell"></param> /// <returns></returns> DatesRangeDto GetDatesRange(int idWell); /// <summary> /// ВРЕМЕННЫЙ метод /// </summary> /// <param name="idCompany"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<DepositBranchDto>> GetWellTreeAsync(int idCompany, CancellationToken token); }