namespace OmniNX.DesktopInstaller.Models; public enum OmniNxVariant { None = 0, Light, Standard, Oc, } public enum InstallMode { Clean, Update, } public sealed class InstallOptions { public required string DriveRoot { get; init; } public required OmniNxVariant Variant { get; init; } public InstallMode Mode { get; init; } public bool Use8GbRam { get; init; } public bool UseHekateAmsPro { get; init; } public bool ForceCleanInstall { get; init; } public string? StagingPath { get; init; } } public sealed class OmniNxStatus { public bool IsInstalled { get; init; } public OmniNxVariant Variant { get; init; } public string Version { get; init; } = string.Empty; } public sealed class ReleaseInfo { public required string TagName { get; init; } public required string Name { get; init; } public required IReadOnlyList Assets { get; init; } } public sealed class ReleaseAsset { public required string Name { get; init; } public required string DownloadUrl { get; init; } public long Size { get; init; } } public sealed class InstallProgressReport { public required string Message { get; init; } public int? Percent { get; init; } public bool IsError { get; init; } }