using Microsoft.AspNetCore.Http; using Roadie.Library; using Roadie.Library.Identity; using Roadie.Library.Models; using Roadie.Library.Models.Pagination; using Roadie.Library.Models.Releases; using Roadie.Library.Models.Users; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Roadie.Api.Services { public interface IReleaseService { IEnumerable AddedTrackIds { get; } Task> ById(User roadieUser, Guid id, IEnumerable includes = null); Task> Delete(ApplicationUser user, Library.Data.Release release, bool doDeleteFiles = false, bool doUpdateArtistCounts = true); Task> DeleteReleases(ApplicationUser user, IEnumerable releaseIds, bool doDeleteFiles = false); Task> List(User user, PagedRequest request, bool? doRandomize = false, IEnumerable includes = null); Task> MergeReleases(ApplicationUser user, Guid releaseToMergeId, Guid releaseToMergeIntoId, bool addAsMedia); Task> MergeReleases(ApplicationUser user, Library.Data.Release releaseToMerge, Library.Data.Release releaseToMergeInto, bool addAsMedia); Task> ReleaseZipped(User roadieUser, Guid id); Task> ScanReleaseFolder(ApplicationUser user, Guid releaseId, bool doJustInfo, Library.Data.Release releaseToScan = null); Task> SetReleaseImageByUrl(ApplicationUser user, Guid id, string imageUrl); Task> UpdateRelease(ApplicationUser user, Release release, string originalReleaseFolder = null); Task> UploadReleaseImage(ApplicationUser user, Guid id, IFormFile file); } }