namespace HistoryView.Data;

public partial class Hardwares : ObservableObject
{
    [ObservableProperty]
    private ObservableDictionary<byte, Mini8Info> _Mini8s = [];

    [ObservableProperty]
    private ObservableDictionary<byte, ObservableDictionary<byte, Channel>> _Mini8Channels = [];
}

public partial class TemperatureConfigs : ObservableObject
{
    [ObservableProperty]
    private ObservableCollection<TempConfig> _ConfigFiles = [];

    [ObservableProperty]
    private CurrentTempConfig? _CurrentConfigFile;
}

public partial class Alarms : ObservableObject
{
    [ObservableProperty]
    private ObservableDictionary<byte, ObservableDictionary<byte, AlarmInfo>> _DisplayAlarm = [];

    [ObservableProperty]
    private ObservableCollection<AlarmInfo>? _HistoryAlarms;
}

//public partial class BaseSettings : ObservableObject
//{
//    [ObservableProperty]
//    private RunningMode _RunningMode;
//}

public partial class UserInformation : ObservableObject
{
    [ObservableProperty]
    private string? _userName = (string)App.Current.Resources["DefaultUser"];

    [ObservableProperty]
    private string? _password = string.Empty;

    [ObservableProperty]
    private UserAuthority _Authority;
}

public partial class UserCollection : ObservableObject
{
    [ObservableProperty]
    private ObservableCollection<UserInformation> _Users = [];
}

public class FilePaths
{
    private static string LocalPath { get; } = Environment.CurrentDirectory;
    private static string MainFolder { get; } = new DirectoryInfo(LocalPath!)!.Parent!.FullName;

    public static string ConsoleExe { get; } = Path.Combine(MainFolder, "Console", "MinicsConsole.exe");
    public static string HistoryExe { get; } = Path.Combine(MainFolder, "History", "HistoryUI.exe");

    public static string LanguageBasePath { get; } = Path.Combine(LocalPath, "MultiLanguage");
    public static string LanguageConfigFilePath { get; } = Path.Combine(LanguageBasePath, "Languages.xlsx");

}
