using Katteker.Utilities;
using Semver;
using System;

namespace KattekerCreator
{
    public partial class SetupTemplate
    {
        private readonly string? _appName;

        public string AppName
        {
            get => _appName + ReleaseChannel;
            init => _appName = value;
        }

        public string? AssemblyName { get; init; }
        public string? CompanyName { get; init; }
        public string? Description { get; init; }
        public string? Executable { get; init; }
        public string? HelpUrl { get; init; }
        public string? IconPath { get; init; }
        public long InstallSize { get; init; }
        public Version? LegacyVersion => Version?.ToSystemVersion();
        public string? OnInstSuccessContent { get; init; }
        public string? OnUnInstSuccessContent { get; init; }
        public string? OutFile { get; init; }
        public string? ReleaseChannel { get; init; }
        public string? UninstallIcon { get; init; }
        public string? UserInterface { get; init; }
        public string? WaitForProcessExe { get; init; }
        public SemVersion? Version { get; init; }
        public string? KattekerConfig { get; init; }
        public string? AppPackage { get; init; }
    }
}