using System.Collections.Generic; using System.Threading.Tasks; using Wino.Core.Domain.Models.Updates; namespace Wino.Core.Domain.Interfaces; public interface IUpdateManager { /// Loads and parses the update notes for the current version from the bundled asset file. Task GetLatestUpdateNotesAsync(); /// Returns true if the current version's update notes have not yet been shown to the user. bool ShouldShowUpdateNotes(); /// Stores a flag in local settings indicating the update notes for the current version have been seen. void MarkUpdateNotesAsSeen(); /// Returns true if any registered migration has not yet been completed. bool HasPendingMigrations(); /// Runs all pending migrations in order and marks each as completed in local settings. Task RunPendingMigrationsAsync(); /// Registers migrations to be tracked and executed by this manager. void RegisterMigrations(IEnumerable migrations); }