using Ardalis.Result; using WatchIt.DTO.Models.Controllers.Genres.Genre; using WatchIt.DTO.Models.Controllers.Media.Medium.Query; using WatchIt.DTO.Models.Controllers.Media.Medium.Request; using WatchIt.DTO.Models.Controllers.Media.Medium.Response; using WatchIt.DTO.Models.Controllers.Photos.Photo; using WatchIt.DTO.Models.Controllers.Roles.Role.Response; using WatchIt.DTO.Models.Generics.Image; using WatchIt.DTO.Models.Generics.Rating; using WatchIt.DTO.Query; namespace WatchIt.WebAPI.BusinessLogic.Media; public interface IMediaBusinessLogic { #region Main Task>> GetMedia(MediumFilterQuery filterQuery, OrderQuery orderQuery, PagingQuery pagingQuery, bool includePictures); Task> GetMedium(long mediumId, bool includePictures); Task>> GetMediumMovies(MediumMovieFilterQuery filterQuery, OrderQuery orderQuery, PagingQuery pagingQuery, bool includePictures); Task> GetMediumMovie(long mediumId, bool includePictures); Task>> GetMediumSeries(MediumSeriesFilterQuery filterQuery, OrderQuery orderQuery, PagingQuery pagingQuery, bool includePictures); Task> GetMediumSeries(long mediumId, bool includePictures); Task> PostMediumMovie(MediumMovieRequest body); Task> PostMediumSeries(MediumSeriesRequest body); Task> PutMediumMovie(long mediumId, MediumMovieRequest body); Task> PutMediumSeries(long mediumId, MediumSeriesRequest body); Task DeleteMedium(long mediumId); #endregion #region Genres Task>> GetMediumGenres(long mediumId, GenreFilterQuery filterQuery, OrderQuery orderQuery, PagingQuery pagingQuery); Task PostMediumGenre(long mediumId, short genreId); Task DeleteMediumGenre(long mediumId, short genreId); #endregion #region Rating Task> GetMediumRating(long mediumId); Task> GetMediumUserRating(long mediumId, long accountId); Task PutMediumRating(long mediumId, RatingRequest body); Task DeleteMediumRating(long mediumId); #endregion #region View count Task PutMediumViewCount(long mediumId); #endregion #region Picture Task> GetMediumPicture(long mediumId); Task> PutMediumPicture(long mediumId, ImageRequest body); Task DeleteMediumPicture(long mediumId); #endregion #region Photos Task> GetMediumPhotoBackground(long mediumId); #endregion }