using AsbCloudApp.Requests; using AsbCloudApp.Data; using AsbCloudApp.Services; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Repositories { #nullable enable /// <summary> /// Сервис доступа к файлам /// </summary> public interface IFileRepository : ICrudRepository<FileInfoDto> { /// <summary> /// Получение файлов по скважине /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<FileInfoDto>> GetInfosAsync(FileRequest request, CancellationToken token); /// <summary> /// Получить список файлов в контейнере /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> Task<PaginationContainer<FileInfoDto>> GetInfosPaginatedAsync(FileRequest request, CancellationToken token = default); /// <summary> /// Пометить файл как удаленный /// </summary> /// <param name="idFile"></param> /// <param name="token"></param> /// <returns></returns> Task<int> MarkAsDeletedAsync(int idFile, CancellationToken token = default); /// <summary> /// удалить файлы /// </summary> /// <param name="ids"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<FileInfoDto>> DeleteAsync(IEnumerable<int> ids, CancellationToken token); /// <summary> /// получить инфо о файле по метке /// </summary> /// <param name="idMark"></param> /// <param name="token"></param> /// <returns></returns> Task<FileInfoDto> GetByMarkId(int idMark, CancellationToken token); /// <summary> /// добавить метку на файл /// </summary> /// <param name="fileMarkDto"></param> /// <param name="idUser"></param> /// <param name="token"></param> /// <returns></returns> Task<int> CreateFileMarkAsync(FileMarkDto fileMarkDto, int idUser, CancellationToken token); /// <summary> /// Инфо о файлах /// </summary> /// <param name="idsFile"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<FileInfoDto>> GetInfoByIdsAsync(IEnumerable<int> idsFile, CancellationToken token); /// <summary> /// пометить метки файлов как удаленные /// </summary> /// <param name="idsMarks"></param> /// <param name="token"></param> /// <returns></returns> Task<int> MarkFileMarkAsDeletedAsync(IEnumerable<int> idsMarks, CancellationToken token); } #nullable disable }