using Microsoft.AspNetCore.Http; using Roadie.Library; using Roadie.Library.Models; using Roadie.Library.Models.Pagination; using Roadie.Library.Models.Releases; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Roadie.Api.Services { public interface IReleaseService { IEnumerable AddedTrackIds { get; } Task> ByIdAsync(Library.Models.Users.User roadieUser, Guid id, IEnumerable includes = null); Task> DeleteAsync(Library.Identity.User user, Library.Data.Release release, bool doDeleteFiles = false, bool doUpdateArtistCounts = true); Task> DeleteReleasesAsync(Library.Identity.User user, IEnumerable releaseIds, bool doDeleteFiles = false); Task> ListAsync(Library.Models.Users.User user, PagedRequest request, bool? doRandomize = false, IEnumerable includes = null); Task> MergeReleasesAsync(Library.Identity.User user, Guid releaseToMergeId, Guid releaseToMergeIntoId, bool addAsMedia); Task> MergeReleasesAsync(Library.Identity.User user, Library.Data.Release releaseToMerge, Library.Data.Release releaseToMergeInto, bool addAsMedia); Task> ReleaseZippedAsync(Library.Models.Users.User roadieUser, Guid id); Task> ScanReleaseFolderAsync(Library.Identity.User user, Guid releaseId, bool doJustInfo, Library.Data.Release releaseToScan = null); Task> SetReleaseImageByUrlAsync(Library.Identity.User user, Guid id, string imageUrl); Task> UpdateReleaseAsync(Library.Identity.User user, Release release, string originalReleaseFolder = null); Task> UploadReleaseImageAsync(Library.Identity.User user, Guid id, IFormFile file); } }