using Artemis.WebClient.Workshop.Handlers.UploadHandlers; namespace Artemis.WebClient.Workshop.Services; public interface IWorkshopService { Task GetEntryIcon(long entryId, CancellationToken cancellationToken); Task SetEntryIcon(long entryId, Stream icon, CancellationToken cancellationToken); Task UploadEntryImage(long entryId, ImageUploadRequest request, CancellationToken cancellationToken); Task GetWorkshopStatus(CancellationToken cancellationToken); Task ValidateWorkshopStatus(CancellationToken cancellationToken); Task NavigateToEntry(long entryId, EntryType entryType); List GetInstalledEntries(); InstalledEntry? GetInstalledEntry(IEntryDetails entry); void RemoveInstalledEntry(InstalledEntry installedEntry); void SaveInstalledEntry(InstalledEntry entry); public record WorkshopStatus(bool IsReachable, string Message); }