package ru.nbch.credit_tracker.enums;

public enum SignalError implements IEnumKeyCode {
    ERROR_001("001", "Ошибка распаковки архива"),
    ERROR_002("002", "Отсутствует обязательный элемент: {}"),
    ERROR_003("003", "Элемент ClientId не соответствует формату XXXXXXXXX. Id: {}"),
    ERROR_005("005", "Неверный логин или пароль"),
    ERROR_006("006", "Доступ к услуге закрыт, обратитесь к курирующему менеджеру"),
    ERROR_007("007", "В системе уже существует пакет с таким именем"),
    ERROR_008("008", "PackageName не соответствует допустимому формату"),
    ERROR_009("009", "Превышен допустимый размер пакета"),
    ERROR_010("010", "Идентификатор субъекта (Id) не соответствует допустимому формату: {}"),
    ERROR_011("011", "Получен невалидный XML"),
    ERROR_012("012", "Пакет {} не найден"),
    ERROR_013("013", "На стороне сервиса произошла ошибка, попробуйте повторить запрос позже или сообщите в техническую поддержку"),
    ERROR_014("014", "Файл с именем {} не найден "),
    ERROR_015("015", "У данного пользователя не найдено активных пакетов"),
    ERROR_016("016", "Нет активного пакета с именем {}"),
    ERROR_017("017", "При обработке запроса произошла ошибка. Повторите запрос позже или обратитесь в службу технической поддержки"), // TODO get rid of duplicate?
    ERROR_018("018", "Пакет {} находится в обработке. Дождитесь его установки на мониторинг и повторите попытку позже."),
    ERROR_019("019", "У данного пользователя не найдено ни одного пакета"),
    ERROR_020("020", "Пакет {} был отклонён при установке на мониторинг. Отчеты не формируются."),
    ERROR_021("021", "Обработка пакета {} завершилась с ошибкой, отчёты недоступны. Обратитесь в техническую поддержку."),
    ERROR_022("022", "Пакет {} снят с мониторинга, отчёты больше недоступны.");


    private final String code;
    private final String message;

    SignalError(String code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public String getKey() {
        return message;
    }

    @Override
    public String getCode() {
        return code;
    }


}
