namespace Млаумчерб.Клиент.классы;

public class GameVersionProps
{
    public string Name { get; }
    public IOPath LocalDescriptorPath { get; }
    public string? RemoteDescriptorUrl { get; }
    private bool _isDownloaded;
    public bool IsDownloaded
    {
        get => _isDownloaded;
        set
        {
            _isDownloaded = value;
            DownloadCompleted?.Invoke();
        }
    }
    public event Action? DownloadCompleted;

    public GameVersionProps(string name, string? url, IOPath descriptorPath)
    {
        Name = name;
        LocalDescriptorPath = descriptorPath;
        RemoteDescriptorUrl = url;
        IsDownloaded = File.Exists(Пути.GetVersionJarFilePath(name));
    }
    
    public GameVersionProps(string name, string? url) : 
        this(name, url, Пути.GetVersionDescriptorPath(name)) { }

    public override string ToString() => Name;
}
