using Dpz.Core.Public.ViewModel.Steam;

namespace Dpz.Core.Service.RepositoryService;

public interface ISteamGameService : ICacheService
{
    /// <summary>
    /// 游戏logo下载完成
    /// </summary>
    event LogoDownload OnLogoDownloadComplete;

    /// <summary>
    /// 成就图标(未完成,灰色)下载完成
    /// </summary>
    event AchievementIconGrayDownload OnAchievementIconGrayDownloadComplete;

    /// <summary>
    /// 已解锁成就图标(已完成,彩色)下载完成
    /// </summary>
    event AchievementIconDownload OnAchievementIconDownloadComplete;

    /// <summary>
    /// 更新游戏库
    /// </summary>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    /// <returns></returns>
    Task UpdateGamesAsync(CancellationToken cancellationToken = default);

    /// <summary>
    /// 获取游戏库
    /// </summary>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    /// <returns></returns>
    Task<List<VmSteamGame>> GetGamesAsync(CancellationToken cancellationToken = default);

    /// <summary>
    /// 获取游戏详情
    /// </summary>
    /// <param name="id"></param>
    /// <param name="cancellationToken">传播通知操作应取消的通知令牌</param>
    /// <returns></returns>
    Task<VmSteamGame?> GetGameAsync(int id, CancellationToken cancellationToken = default);
}
评论加载中...