using Artemis.WebClient.Workshop.Handlers.UploadHandlers; using Artemis.WebClient.Workshop.Models; 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 DeleteEntryImage(Guid id, CancellationToken cancellationToken); Task GetWorkshopStatus(CancellationToken cancellationToken); Task ValidateWorkshopStatus(CancellationToken cancellationToken); Task NavigateToEntry(long entryId, EntryType entryType); List GetInstalledEntries(); InstalledEntry? GetInstalledEntry(long entryId); void RemoveInstalledEntry(InstalledEntry installedEntry); void SaveInstalledEntry(InstalledEntry entry); void Initialize(); public record WorkshopStatus(bool IsReachable, string Message); event EventHandler? OnInstalledEntrySaved; }