namespace LiquidCode.Tester.Gateway.Services;

public interface IPackageDownloadService
{
    /// <summary>
    /// Retrieves a cached package for the mission or downloads it if missing.
    /// </summary>
    /// <param name="missionId">Unique mission identifier used as cache key.</param>
    /// <param name="packageUrl">URL to download the package from when cache is cold.</param>
    /// <returns>Path to the cached or downloaded package file.</returns>
    Task<string> GetOrDownloadPackageAsync(long missionId, string packageUrl);
}
