namespace FileSplitter.Shared.Classes;

/// <summary>
/// Класс json-представления языкового файла программы
/// </summary>
public class FileSplitterLanguage
{
    //Параметры приложения
    public FileSplitterLanguage()
    {
        AppTitle = string.Empty;
        AppVersion = string.Empty;
        AppCopyrights = string.Empty;
        MessageNoParametersForSplit = string.Empty;
        MessageSplitAsk = string.Empty;
        MessageStartSplit = string.Empty;
        MessageSplitFilePart = string.Empty;
        MessageSplitComplete = string.Empty;
        MessageHashCheckStart = string.Empty;
        MessageHashCheckFail = string.Empty;
        MessageHashCheckComplete = string.Empty;
        MessageJoinAsk = string.Empty;
        MessageStartJoin = string.Empty;
        MessageJoinUnsupportedFile = string.Empty;
        MessageJoinUnknownFile = string.Empty;
        MessageJoinHashError = string.Empty;
        MessageJoinCheckError = string.Empty;
        MessageJoinFilePart = string.Empty;
        MessageJoinComplete = string.Empty;
        MessagePleaseWaitToReady = string.Empty;
        InteractiveStartAsk = string.Empty;
        InteractiveWrongInput = string.Empty;
        InteractiveOperationFinish = string.Empty;
        InteractiveFileNameNotExist = string.Empty;
        InteractiveFileNameExist = string.Empty;
        InteractiveSplitFileNameAsk = string.Empty;
        InteractiveSplitFileNameResult = string.Empty;
        InteractiveSplitTargetDirAsk = string.Empty;
        InteractiveSplitTargetDirResult = string.Empty;
        InteractiveSplitPartSizeAsk = string.Empty;
        InteractiveSplitPartSizeAsk2 = string.Empty;
        InteractiveSplitPartSizeResult = string.Empty;
        InteractiveSplitOptionsAsk = string.Empty;
        InteractiveSplitOptionsResult = string.Empty;
        InteractiveJoinFileNameAsk = string.Empty;
        InteractiveJoinFileNameResult = string.Empty;
        InteractiveJoinTargetFileNameAsk = string.Empty;
        InteractiveJoinTargetFileNameResult = string.Empty;
        InteractiveJoinOptionsAsk = string.Empty;
        InteractiveJoinOptionsResult = string.Empty;
        InteractiveOptionsAsk = string.Empty;
        InteractiveOptionsConfirm = string.Empty;
        InteractiveOptionsResult = string.Empty;
        FileSizeStringsByte = string.Empty;
        FileSizeStringsKByte = string.Empty;
        FileSizeStringsMByte = string.Empty;
        FileSizeStringsGByte = string.Empty;
        FileSizeStringsTByte = string.Empty;
        ExitCodeNamesAllDone = string.Empty;
        ExitCodeNamesInfoVersionUnsupported = string.Empty;
        ExitCodeNamesInvalidParameters = string.Empty;
        ExitCodeNamesSplitFileHashError = string.Empty;
        ExitCodeNamesTargetFileCheckError = string.Empty;
        ExitCodeNamesUnknownInfoFile = string.Empty;
        ExitCodeNamesUserAborted = string.Empty;
    }

    public string AppTitle { get; set; }
    public string AppVersion { get; set; }
    public string AppCopyrights { get; set; }

    //Сообщения
    public string MessageNoParametersForSplit { get; set; }
    public string MessageSplitAsk { get; set; }
    public string MessageStartSplit { get; set; }
    public string MessageSplitFilePart { get; set; }
    public string MessageSplitComplete { get; set; }
    public string MessageHashCheckStart { get; set; }
    public string MessageHashCheckFail { get; set; }
    public string MessageHashCheckComplete { get; set; }
    public string MessageJoinAsk { get; set; }
    public string MessageStartJoin { get; set; }
    public string MessageJoinUnsupportedFile { get; set; }
    public string MessageJoinUnknownFile { get; set; }
    public string MessageJoinHashError { get; set; }
    public string MessageJoinCheckError { get; set; }
    public string MessageJoinFilePart { get; set; }
    public string MessageJoinComplete { get; set; }
    public string MessagePleaseWaitToReady { get; set; }

    //Сообщения интерактивного режима
    public string InteractiveStartAsk { get; set; }
    public string InteractiveWrongInput { get; set; }
    public string InteractiveOperationFinish { get; set; }
    public string InteractiveFileNameNotExist { get; set; }
    public string InteractiveFileNameExist { get; set; }

    public string InteractiveSplitFileNameAsk { get; set; }
    public string InteractiveSplitFileNameResult { get; set; }
    public string InteractiveSplitTargetDirAsk { get; set; }
    public string InteractiveSplitTargetDirResult { get; set; }
    public string InteractiveSplitPartSizeAsk { get; set; }
    public string InteractiveSplitPartSizeAsk2 { get; set; }
    public string InteractiveSplitPartSizeResult { get; set; }
    public string InteractiveSplitOptionsAsk { get; set; }
    public string InteractiveSplitOptionsResult { get; set; }

    public string InteractiveJoinFileNameAsk { get; set; }
    public string InteractiveJoinFileNameResult { get; set; }
    public string InteractiveJoinTargetFileNameAsk { get; set; }
    public string InteractiveJoinTargetFileNameResult { get; set; }
    public string InteractiveJoinOptionsAsk { get; set; }
    public string InteractiveJoinOptionsResult { get; set; }

    public string InteractiveOptionsAsk { get; set; }
    public string InteractiveOptionsConfirm { get; set; }
    public string InteractiveOptionsResult { get; set; }

    //Константы размеров
    public string FileSizeStringsByte { get; set; }
    public string FileSizeStringsKByte { get; set; }
    public string FileSizeStringsMByte { get; set; }
    public string FileSizeStringsGByte { get; set; }
    public string FileSizeStringsTByte { get; set; }

    //Переводы кодов возврата
    public string ExitCodeNamesAllDone { get; set; }
    public string ExitCodeNamesInfoVersionUnsupported { get; set; }
    public string ExitCodeNamesInvalidParameters { get; set; }
    public string ExitCodeNamesSplitFileHashError { get; set; }
    public string ExitCodeNamesTargetFileCheckError { get; set; }
    public string ExitCodeNamesUnknownInfoFile { get; set; }
    public string ExitCodeNamesUserAborted { get; set; }
}