using AsbCloudApp.Data; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using AsbCloudApp.Requests; namespace AsbCloudApp.Services; /// <summary> /// Репозиторий расписания смен бурильщика /// </summary> public interface IScheduleRepository : IRepositoryWellRelated<ScheduleDto> { /// <summary> /// Получить расписание смен /// </summary> /// <param name="idWell"></param> /// <param name="workTime"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<ScheduleDto>> GetAsync(int idWell, DateTimeOffset workTime, CancellationToken token); /// <summary> /// получить бурильщика по idWell и времени /// </summary> /// <param name="idWell"></param> /// <param name="workTime"></param> /// <param name="token"></param> /// <returns></returns> Task<DrillerDto?> GetOrDefaultDrillerAsync(int idWell, DateTimeOffset workTime, CancellationToken token); /// <summary> /// Получить расписание смен /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<ScheduleDto>> GetPageAsync(GetStatRequest request, CancellationToken token); }