using WatchIt.Database.Model.Photos; using WatchIt.DTO.Models.Controllers.Photos.Photo; using WatchIt.DTO.Query; namespace WatchIt.WebAPI.Repositories.Photos; public interface IPhotosRepository : IRepository { Task ExistsAsync(Guid id); Task GetAsync(Guid id, Func, IQueryable>? additionalIncludes = null); Task> GetAllAsync(PhotoFilterQuery filterQuery, OrderQuery orderQuery, PagingQuery pagingQuery, Func, IQueryable>? additionalIncludes = null); Task GetPhotoRandomBackgroundAsync(Func, IQueryable>? additionalIncludes = null); Task UpdateAsync(Guid id, Action updateFunc); Task DeleteAsync(Guid id); Task AddPhotoBackgroundAsync(PhotoBackground photoBackground); Task UpdateOrAddPhotoBackgroundAsync(Guid photoId, Func addFunc, Action updateFunc); Task DeletePhotoBackgroundAsync(Guid photoId); Task GetPhotoRandomBackgroundByMediumAsync(long mediumId, Func, IQueryable>? additionalIncludes = null); }