export const ERRORS = { // UNKNOWN UNKNOWN_ERROR: { message: 'Неизвестная ошибка', code: 'UNKNOWN_001', httpCode: 500, }, // BALANCE BALANCE_INSUFFICIENT: { message: 'Недостаточно средств для выполнения операции', code: 'BALANCE_001', httpCode: 400, }, BALANCE_CALCULATION_ERROR: { message: 'Ошибка при расчете баланса пользователя', code: 'BALANCE_002', httpCode: 500, }, // TOKEN RESERVATION TOKEN_RESERVATION: { INSUFFICIENT_BALANCE: { message: 'Недостаточно средств', code: 'TOKEN_RESERVATION_001', httpCode: 400, }, NOT_FOUND: { message: 'Запись о резервировании токенов не найдена', code: 'TOKEN_RESERVATION_002', httpCode: 404, }, INVALID_STATUS: { message: 'Недопустимый статус записи о резервировании токенов', code: 'TOKEN_RESERVATION_003', httpCode: 400, }, EXPIRED: { message: 'Срок записи о резервировании токенов истёк', code: 'TOKEN_RESERVATION_004', httpCode: 400, }, CREATE_ERROR: { message: 'Ошибка при создании записи о резервировании токенов', code: 'TOKEN_RESERVATION_005', httpCode: 500, }, COMMIT_ERROR: { message: 'Ошибка при подтверждении зарезервированных токенов', code: 'TOKEN_RESERVATION_006', httpCode: 500, }, RELEASE_ERROR: { message: 'Ошибка при освобождении зарезервированных токенов', code: 'TOKEN_RESERVATION_007', httpCode: 500, }, }, // AUTH AUTH_REGISTER_CONFLICT: { message: 'Пользователь с этим email уже существует', code: 'AUTH_001', httpCode: 409, }, AUTH_REGISTER_ERROR: { message: 'Ошибка при регистрации пользователя', code: 'AUTH_002', httpCode: 500, }, AUTH_RESTORE_PASSWORD_ERROR: { message: 'Ошибка при восстановлении пароля', code: 'AUTH_003', httpCode: 500, }, AUTH_CREATE_USER_ERROR: { message: 'Ошибка при создании пользователя', code: 'AUTH_004', httpCode: 500, }, AUTH_ACCOUNT_DELETED: { message: 'Аккаунт был удален', code: 'AUTH_005', httpCode: 410, }, AUTH_LOGIN_ERROR: { message: 'Неверный email или пароль', code: 'AUTH_006', httpCode: 401, }, AUTH_EMAIL_ALREADY_VERIFIED: { message: 'Email уже подтвержден', code: 'AUTH_007', httpCode: 400, }, AUTH_VERIFY_EMAIL_ERROR: { message: 'Ошибка при подтверждении email', code: 'AUTH_008', httpCode: 500, }, AUTH_VALIDATE_EMAIL_ERROR: { message: 'Неверный формат email', code: 'AUTH_009', httpCode: 400, }, AUTH_INCORRECT_PASSWORD: { message: 'Неверный пароль', code: 'AUTH_010', httpCode: 401, }, AUTH_PASSWORD_IDENTICAL: { message: 'Новый пароль совпадает с текущим', code: 'AUTH_012', httpCode: 400, }, AUTH_CHANGE_PASSWORD_ERROR: { message: 'Ошибка при смене пароля', code: 'AUTH_013', httpCode: 500, }, AUTH_EMAIL_VERIFICATION_CODE_INVALID: { message: 'Код подтверждения email некорректен', code: 'AUTH_011', httpCode: 400, }, // ACCOUNT ACCOUNT_MERGE_ERROR: { message: 'Ошибка при объединении аккаунтов', code: 'ACCOUNT_MERGE_001', httpCode: 500, }, ACCOUNT_MERGE_SOURCE_INVALID_SIGNUP_METHOD: { message: 'Исходный аккаунт имеет недопустимый метод регистрации', code: 'ACCOUNT_002', httpCode: 400, }, ACCOUNT_MERGE_TARGET_INVALID_SIGNUP_METHOD: { message: 'Целевой аккаунт имеет недопустимый метод регистрации', code: 'ACCOUNT_003', httpCode: 400, }, ACCOUNT_MERGE_TARGET_HAS_TELEGRAM_LINKED: { message: 'Целевой аккаунт уже имеет привязанный Telegram профиль', code: 'ACCOUNT_004', httpCode: 409, }, ACCOUNT_MERGE_SOURCE_HAS_PURCHASES: { message: 'Исходный аккаунт имеет покупки и не может быть объединен', code: 'ACCOUNT_005', httpCode: 400, }, ACCOUNT_DELETE_ERROR: { message: 'Ошибка при удалении аккаунта', code: 'ACCOUNT_006', httpCode: 500, }, // USER USER_NOT_FOUND: { message: 'Пользователь не найден', code: 'USER_001', httpCode: 404, }, USER_NOT_ID: { message: 'Пользователь не найден по ID', code: 'USER_002', httpCode: 404, }, USER_NOT_EMAIL: { message: 'Пользователь не найден по email', code: 'USER_003', httpCode: 404, }, USER_NOT_YANDEX_ID: { message: 'Пользователь не найден по Yandex ID', code: 'USER_004', httpCode: 404, }, USER_NOT_VK_ID: { message: 'Пользователь не найден по VK ID', code: 'USER_005', httpCode: 404, }, USER_CONFLICT: { message: 'Пользователь уже существует', code: 'USER_006', httpCode: 409, }, USER_NOT_CREATED: { message: 'Ошибка при создании пользователя', code: 'USER_007', httpCode: 500, }, USER_NOT_UPDATED: { message: 'Ошибка при обновлении пользователя', code: 'USER_008', httpCode: 500, }, USER_UPDATE_ERROR: { message: 'Ошибка при обновлении пользователя', code: 'USER_009', httpCode: 500, }, // SESSION SESSION_CREATE_ERROR: { message: 'Ошибка при создании сессии', code: 'SESSION_001', httpCode: 500, }, SESSION_GET_UNREGISTERED_ERROR: { message: 'Ошибка при получении незарегистрированной сессии', code: 'SESSION_002', httpCode: 500, }, SESSION_UNREGISTERED_INIT_ERROR: { message: 'Ошибка при инициализации незарегистрированной сессии', code: 'SESSION_003', httpCode: 500, }, SESSION_UNREGISTERED_LIMIT_UPDATE_ERROR: { message: 'Ошибка при обновлении лимита незарегистрированного пользователя', code: 'SESSION_004', httpCode: 500, }, // ROLE ROLE_FORBIDDEN_ERROR: { message: 'Недостаточно прав для этой роли', code: 'ROLE_001', httpCode: 403, }, // PAYMENT PAYMENT_FIND_ERROR: { message: 'Ошибка при поиске платежа', code: 'PAYMENT_001', httpCode: 500, }, PAYMENT_NOT_FOUND_BY_UUID: { message: 'Платеж не найден по UUID', code: 'PAYMENT_002', httpCode: 404, }, PAYMENT_CREATE_ERROR: { message: 'Ошибка при создании платежа', code: 'PAYMENT_003', httpCode: 500, }, PAYMENT_DELETE_ERROR: { message: 'Ошибка при удалении платежа', code: 'PAYMENT_004', httpCode: 500, }, PAYMENT_UPDATE_ERROR: { message: 'Ошибка при обновлении платежа', code: 'PAYMENT_005', httpCode: 500, }, PAYMENT_HISTORY_ERROR: { message: 'Ошибка при получении истории платежей', code: 'PAYMENT_006', httpCode: 500, }, PAYMENT_FIND_MULTIPLE_ERROR: { message: 'Ошибка при поиске платежей', code: 'PAYMENT_007', httpCode: 500, }, // ORDER ORDER_NOT_FOUND: { message: 'Заказ не найден', code: 'ORDER_001', httpCode: 404, }, ORDER_NOT_FOUND_BY_UUID: { message: 'Заказ не найден по UUID', code: 'ORDER_002', httpCode: 404, }, ORDER_FIND_ERROR: { message: 'Ошибка при поиске заказа', code: 'ORDER_003', httpCode: 500, }, ORDER_CREATE_ERROR: { message: 'Ошибка при создании заказа', code: 'ORDER_004', httpCode: 500, }, ORDER_DELETE_ERROR: { message: 'Ошибка при удалении заказа', code: 'ORDER_005', httpCode: 500, }, ORDER_UPDATE_ERROR: { message: 'Ошибка при обновлении заказа', code: 'ORDER_006', httpCode: 500, }, ORDER_FIND_MULTIPLE_ERROR: { message: 'Ошибка при поиске заказов', code: 'ORDER_007', httpCode: 500, }, ORDER_CHECK_PAID_ERROR: { message: 'Ошибка при проверке оплаченных заказов', code: 'ORDER_008', httpCode: 500, }, ORDER_GET_USER_ORDERS_ERROR: { message: 'Ошибка при получении заказов пользователя', code: 'ORDER_009', httpCode: 500, }, ORDER_CURRENT_NOT_FOUND: { message: 'Текущий заказ не найден', code: 'ORDER_010', httpCode: 404, }, ORDER_CHECK_FIRST_PURCHASE_ERROR: { message: 'Ошибка при проверке первой покупки', code: 'ORDER_011', httpCode: 500, }, ORDER_NO_SUBSCRIPTION_OR_PRODUCT: { message: 'Не указан ID подписки или продукта', code: 'ORDER_012', httpCode: 400, }, // SUBSCRIPTION SUBSCRIPTION_FIND_ERROR: { message: 'Ошибка при поиске подписки', code: 'SUBSCRIPTION_001', httpCode: 500, }, SUBSCRIPTION_NOT_FOUND: { message: 'Подписка не найдена', code: 'SUBSCRIPTION_002', httpCode: 404, }, SUBSCRIPTION_NOT_FOUND_BY_UUID: { message: 'Подписка не найдена по UUID', code: 'SUBSCRIPTION_003', httpCode: 404, }, SUBSCRIPTION_CREATE_ERROR: { message: 'Ошибка при создании подписки', code: 'SUBSCRIPTION_004', httpCode: 500, }, SUBSCRIPTION_DELETE_ERROR: { message: 'Ошибка при удалении подписки', code: 'SUBSCRIPTION_005', httpCode: 500, }, SUBSCRIPTION_UPDATE_ERROR: { message: 'Ошибка при обновлении подписки', code: 'SUBSCRIPTION_006', httpCode: 500, }, SUBSCRIPTION_BUY_ERROR: { message: 'Ошибка при покупке подписки', code: 'SUBSCRIPTION_007', httpCode: 500, }, SUBSCRIPTION_ALREADY_HAS: { message: 'У пользователя уже есть подписка', code: 'SUBSCRIPTION_008', httpCode: 400, }, SUBSCRIPTION_OWNERSHIP_ERROR: { message: 'Пользователь не владеет подпиской', code: 'SUBSCRIPTION_009', httpCode: 400, }, SUBSCRIPTION_NOT_ACTIVE: { message: 'Подписка не активна', code: 'SUBSCRIPTION_010', httpCode: 400, }, SUBSCRIPTION_NOT_PAST_DUE: { message: 'Подписка не просроченная', code: 'SUBSCRIPTION_011', httpCode: 400, }, SUBSCRIPTION_NO_AUTO_RENEWAL: { message: 'Подписка не имеет автоматического продления и не может быть отменена', code: 'SUBSCRIPTION_012', httpCode: 400, }, SUBSCRIPTION_CANCEL_ERROR: { message: 'Ошибка при отмене подписки', code: 'SUBSCRIPTION_013', httpCode: 500, }, SUBSCRIPTION_RECOVER_ERROR: { message: 'Ошибка при восстановлении подписки', code: 'SUBSCRIPTION_014', httpCode: 500, }, SUBSCRIPTION_UPGRADE_ERROR: { message: 'Ошибка при апгрейде подписки', code: 'SUBSCRIPTION_015', httpCode: 500, }, SUBSCRIPTION_UPGRADE_NOT_FOUND: { message: 'Апгрейд подписки не найден', code: 'SUBSCRIPTION_016', httpCode: 404, }, SUBSCRIPTION_UPGRADE_INVALID: { message: 'Апгрейд подписки некорректен', code: 'SUBSCRIPTION_017', httpCode: 400, }, SUBSCRIPTION_DOWNGRADE_ERROR: { message: 'Ошибка при даунгрейде подписки', code: 'SUBSCRIPTION_018', httpCode: 500, }, SUBSCRIPTION_DOWNGRADE_INVALID: { message: 'Даунгрейд подписки некорректен', code: 'SUBSCRIPTION_019', httpCode: 400, }, SUBSCRIPTION_FIND_MULTIPLE_ERROR: { message: 'Ошибка при поиске подписок', code: 'SUBSCRIPTION_020', httpCode: 500, }, SUBSCRIPTION_GET_UPGRADE_ERROR: { message: 'Ошибка при получении доступных апгрейдов', code: 'SUBSCRIPTION_021', httpCode: 500, }, SUBSCRIPTION_GET_DOWNGRADE_ERROR: { message: 'Ошибка при получении доступных даунгрейдов', code: 'SUBSCRIPTION_022', httpCode: 500, }, SUBSCRIPTION_TO_USER_FIND_ERROR: { message: 'Ошибка при поиске связи пользователя с подпиской', code: 'SUBSCRIPTION_023', httpCode: 500, }, SUBSCRIPTION_TO_USER_NOT_FOUND: { message: 'Связь пользователя с подпиской не найдена', code: 'SUBSCRIPTION_024', httpCode: 404, }, SUBSCRIPTION_TO_USER_DELETE_ERROR: { message: 'Ошибка при удалении связи пользователя с подпиской', code: 'SUBSCRIPTION_025', httpCode: 500, }, SUBSCRIPTION_TO_USER_UPDATE_ERROR: { message: 'Ошибка при обновлении связи пользователя с подпиской', code: 'SUBSCRIPTION_026', httpCode: 500, }, SUBSCRIPTION_TO_USER_ADD_ERROR: { message: 'Ошибка при добавлении пользователя к подписке', code: 'SUBSCRIPTION_027', httpCode: 500, }, // PRODUCT PRODUCT_FIND_ERROR: { message: 'Ошибка при поиске продукта', code: 'PRODUCT_001', httpCode: 500, }, PRODUCT_NOT_FOUND: { message: 'Продукт не найден', code: 'PRODUCT_002', httpCode: 404, }, PRODUCT_NOT_FOUND_BY_UUID: { message: 'Продукт не найден по UUID', code: 'PRODUCT_003', httpCode: 404, }, PRODUCT_CREATE_ERROR: { message: 'Ошибка при создании продукта', code: 'PRODUCT_004', httpCode: 500, }, PRODUCT_UPDATE_ERROR: { message: 'Ошибка при обновлении продукта', code: 'PRODUCT_005', httpCode: 500, }, PRODUCT_DELETE_ERROR: { message: 'Ошибка при удалении продукта', code: 'PRODUCT_006', httpCode: 500, }, PRODUCT_BUY_ERROR: { message: 'Ошибка при покупке продукта', code: 'PRODUCT_007', httpCode: 500, }, PRODUCT_FIND_MULTIPLE_ERROR: { message: 'Ошибка при поиске продуктов', code: 'PRODUCT_008', httpCode: 500, }, PRODUCT_TO_USER_FIND_ERROR: { message: 'Ошибка при поиске связи пользователя с продуктом', code: 'PRODUCT_009', httpCode: 500, }, PRODUCT_TO_USER_NOT_FOUND: { message: 'Связь пользователя с продуктом не найдена', code: 'PRODUCT_010', httpCode: 404, }, PRODUCT_TO_USER_UPDATE_ERROR: { message: 'Ошибка при обновлении связи пользователя с продуктом', code: 'PRODUCT_011', httpCode: 500, }, PRODUCT_TO_USER_ADD_ERROR: { message: 'Ошибка при добавлении пользователя к продукту', code: 'PRODUCT_012', httpCode: 500, }, PRODUCT_TO_USER_DELETE_ERROR: { message: 'Ошибка при удалении пользователя из продукта', code: 'PRODUCT_013', httpCode: 500, }, // PROMOCODE PROMOCODE_VALIDATE_ERROR: { message: 'Ошибка при валидации промокода', code: 'PROMOCODE_001', httpCode: 500, }, PROMOCODE_FIND_ERROR: { message: 'Ошибка при поиске промокода', code: 'PROMOCODE_002', httpCode: 500, }, PROMOCODE_INVALID: { message: 'Промокод некорректен', code: 'PROMOCODE_003', httpCode: 400, }, PROMOCODE_UPDATE_ERROR: { message: 'Ошибка при обновлении промокода', code: 'PROMOCODE_004', httpCode: 500, }, PROMOCODE_FIND_MULTIPLE_ERROR: { message: 'Ошибка при поиске промокодов', code: 'PROMOCODE_005', httpCode: 500, }, PROMOCODE_CREATE_ERROR: { message: 'Ошибка при создании промокода', code: 'PROMOCODE_006', httpCode: 500, }, PROMOCODE_DELETE_ERROR: { message: 'Ошибка при удалении промокода', code: 'PROMOCODE_007', httpCode: 500, }, // TRANSACTION TRANSACTION_CREATE_ERROR: { message: 'Ошибка при создании транзакции', code: 'TRANSACTION_001', httpCode: 500, }, TRANSACTION_UPDATE_ERROR: { message: 'Ошибка при обновлении транзакции', code: 'TRANSACTION_002', httpCode: 500, }, TRANSACTION_CHUNK_CREATE_ERROR: { message: 'Ошибка при создании куска транзакции', code: 'TRANSACTION_003', httpCode: 500, }, // REFERRAL REFERRAL_BONUSES_NOT_FOUND: { message: 'Бонусы рефералов не найдены', code: 'REFERRAL_001', httpCode: 404, }, REFERRAL_BONUS_STATS_ERROR: { message: 'Ошибка при получении статистики бонусов рефералов', code: 'REFERRAL_002', httpCode: 500, }, REFERRAL_BONUS_APPLY_ERROR: { message: 'Ошибка при применении бонуса реферала', code: 'REFERRAL_003', httpCode: 500, }, REFERRAL_BONUS_UPDATE_ERROR: { message: 'Ошибка при обновлении бонуса реферала', code: 'REFERRAL_004', httpCode: 500, }, // PAGE PAGE_NOT_FOUND: { message: 'Страница не найдена', code: 'PAGE_001', httpCode: 404, }, PAGE_NOT_FOUND_BY_UUID: { message: 'Страница не найдена по UUID', code: 'PAGE_002', httpCode: 404, }, PAGE_NOT_FOUND_BY_ALIAS: { message: 'Страница не найдена по alias', code: 'PAGE_003', httpCode: 404, }, PAGE_FIND_ERROR: { message: 'Ошибка при поиске страницы', code: 'PAGE_004', httpCode: 500, }, PAGE_FIND_MULTIPLE_ERROR: { message: 'Ошибка при поиске страниц', code: 'PAGE_005', httpCode: 500, }, PAGE_CREATE_ERROR: { message: 'Ошибка при создании страницы', code: 'PAGE_006', httpCode: 500, }, PAGE_CREATE_ALIAS_CONFLICT: { message: 'Alias страницы уже существует', code: 'PAGE_007', httpCode: 409, }, PAGE_DELETE_ERROR: { message: 'Ошибка при удалении страницы', code: 'PAGE_008', httpCode: 500, }, PAGE_UPDATE_ERROR: { message: 'Ошибка при обновлении страницы', code: 'PAGE_009', httpCode: 500, }, TOOL_FIND_ERROR: { message: 'Ошибка при поиске инструмента', code: 'PAGE_010', httpCode: 500, }, // EMAIL EMAIL_SEND_ERROR: { message: 'Ошибка при отправке email', code: 'EMAIL_001', httpCode: 500, }, EMAIL_RECEIVER_UNSUBSCRIBE: { message: 'Получатель email отписался', code: 'EMAIL_002', httpCode: 400, }, EMAIL_RECEIVER_COMPLAINED: { message: 'Получатель email пожаловался', code: 'EMAIL_003', httpCode: 400, }, EMAIL_RECEIVER_DOESNT_EXIST: { message: 'Получатель email не существует', code: 'EMAIL_004', httpCode: 400, }, EMAIL_RECEIVER_UNAVAILABLE: { message: 'Получатель email недоступен', code: 'EMAIL_005', httpCode: 400, }, EMAIL_VALIDATION_ERROR: { message: 'Ошибка валидации email', code: 'EMAIL_006', httpCode: 422, }, // TELEGRAM TELEGRAM_PROFILE_NOT_FOUND: { message: 'Профиль Telegram не найден', code: 'TELEGRAM_001', httpCode: 404, }, // CLOUDPAYMENTS CLOUDPAYMENTS_GET_SUBSCRIPTION_ERROR: { message: 'Ошибка при получении подписки CloudPayments', code: 'CLOUDPAYMENTS_001', httpCode: 500, }, CLOUDPAYMENTS_WIDGET_DATA_ERROR: { message: 'Ошибка при получении данных виджета CloudPayments', code: 'CLOUDPAYMENTS_002', httpCode: 500, }, // CHECK CHECK_HAS_ACTIVE_SUBSCRIPTION_ERROR: { message: 'Ошибка при проверке активной подписки или продукта', code: 'CHECK_001', httpCode: 500, }, CHECK_TELEGRAM_NOTIFICATION_USERS_ERROR: { message: 'Ошибка при поиске пользователей для Telegram уведомления', code: 'CHECK_002', httpCode: 500, }, CHECK_USER_WITH_EMAIL_EXISTS_ERROR: { message: 'Ошибка при проверке существования пользователя с email', code: 'CHECK_003', httpCode: 500, }, // WRITER - MODELS WRITER_MODEL_NOT_FOUND: { message: 'Модель не найдена', code: 'WRITER_MODEL_001', httpCode: 404, }, WRITER_MODEL_INACTIVE: { message: 'Модель неактивна', code: 'WRITER_MODEL_002', httpCode: 400, }, WRITER_MODEL_ACCESS_DENIED: { message: 'Нет доступа к модели', code: 'WRITER_MODEL_003', httpCode: 403, }, WRITER_MODEL_BALANCE_NOT_ENOUGH: { message: 'Недостаточно баланса для использования модели', code: 'WRITER_MODEL_004', httpCode: 400, }, WRITER_MODEL_FIND_ERROR: { message: 'Ошибка при поиске модели', code: 'WRITER_MODEL_005', httpCode: 404, }, WRITER_MODEL_SAVE_ERROR: { message: 'Ошибка при сохранении модели', code: 'WRITER_MODEL_006', httpCode: 500, }, // WRITER - CONFIG WRITER_CONFIG_ERROR: { message: 'Ошибка при получении конфигурации', code: 'WRITER_CONFIG_001', httpCode: 500, }, // WRITER - DOCUMENTS WRITER_DOCUMENT_NOT_FOUND: { message: 'Документ не найден', code: 'WRITER_DOCUMENT_001', httpCode: 404, }, WRITER_DOCUMENT_FIND_ERROR: { message: 'Ошибка при поиске документа', code: 'WRITER_DOCUMENT_002', httpCode: 500, }, WRITER_DOCUMENT_FIND_MULTIPLE_ERROR: { message: 'Ошибка при поиске документов', code: 'WRITER_DOCUMENT_003', httpCode: 500, }, WRITER_DOCUMENT_SAVE_ERROR: { message: 'Ошибка при сохранении документа', code: 'WRITER_DOCUMENT_004', httpCode: 500, }, WRITER_DOCUMENT_DELETE_ERROR: { message: 'Ошибка при удалении документа', code: 'WRITER_DOCUMENT_005', httpCode: 500, }, WRITER_DOCUMENT_SOFT_DELETE_ERROR: { message: 'Ошибка при мягком удалении документов', code: 'WRITER_DOCUMENT_006', httpCode: 500, }, WRITER_DOCUMENT_GENERATE_OUTLINE_ERROR: { message: 'Ошибка при генерации плана документа', code: 'WRITER_DOCUMENT_007', httpCode: 500, }, WRITER_DOCUMENT_GENERATE_CONTENT_ERROR: { message: 'Ошибка при генерации содержимого документа', code: 'WRITER_DOCUMENT_008', httpCode: 500, }, WRITER_DOCUMENT_GENERATE_CONTENT_AI_ERROR: { message: 'Ошибка при генерации содержимого документа с помощью AI', code: 'WRITER_DOCUMENT_009', httpCode: 500, }, WRITER_DOCUMENT_ANALYZE_TOPIC_ERROR: { message: 'Ошибка при анализе темы документа', code: 'WRITER_DOCUMENT_010', httpCode: 500, }, WRITER_DOCUMENT_COLLECT_SOURCES_ERROR: { message: 'Ошибка при сборе источников для документа', code: 'WRITER_DOCUMENT_011', httpCode: 500, }, WRITER_DOCUMENT_OUTLINE_UPDATE_ERROR: { message: 'Ошибка при обновлении плана документа', code: 'WRITER_DOCUMENT_012', httpCode: 500, }, WRITER_DOCUMENT_DOCX_EXPORT_ERROR: { message: 'Ошибка при экспорте документа в формат docx', code: 'WRITER_DOCUMENT_013', httpCode: 500, }, WRITER_DOCUMENT_TOPIC_TOO_LONG: { message: 'Тема документа слишком длинная', code: 'WRITER_DOCUMENT_014', httpCode: 400, }, WRITER_DOCUMENT_DOCUMENT_TYPE_NOT_FOUND: { message: 'Тип документа не найден', code: 'WRITER_DOCUMENT_015', httpCode: 404, }, WRITER_DOCUMENT_TOO_MANY_PAGES: { message: 'Слишком много страниц в документе', code: 'WRITER_DOCUMENT_016', httpCode: 400, }, WRITER_DOCUMENT_TOO_FEW_PAGES: { message: 'Слишком мало страниц в документе', code: 'WRITER_DOCUMENT_017', httpCode: 400, }, WRITER_DOCUMENT_NOT_OWNER: { message: 'Пользователь не является владельцем документа', code: 'WRITER_DOCUMENT_018', httpCode: 403, }, WRITER_DOCUMENT_STAGE_OUTLINE_GENERATED_REQUIRED: { message: 'Требуется стадия генерации плана документа', code: 'WRITER_DOCUMENT_019', httpCode: 400, }, WRITER_DOCUMENT_STAGE_CONTENT_GENERATED_REQUIRED: { message: 'Требуется стадия генерации содержимого документа', code: 'WRITER_DOCUMENT_020', httpCode: 400, }, WRITER_DOCUMENT_SOURCE_COLLECTION_UNSUPPORTED: { message: 'Сбор источников не поддерживается для данного типа документа', code: 'WRITER_DOCUMENT_021', httpCode: 400, }, // WRITER - AI ACTIONS WRITER_AI_ACTION_NOT_FOUND: { message: 'Действие AI не найдено', code: 'WRITER_ACTION_001', httpCode: 404, }, WRITER_AI_ACTION_PROMPT_TOO_LONG: { message: 'Промпт для действия AI слишком длинный', code: 'WRITER_ACTION_003', httpCode: 400, }, WRITER_AI_ACTION_SAVE_ERROR: { message: 'Ошибка при сохранении действия AI', code: 'WRITER_ACTION_004', httpCode: 500, }, WRITER_AI_ACTION_AI_ERROR: { message: 'Ошибка при отправке действия AI', code: 'WRITER_ACTION_005', httpCode: 500, }, WRITER_AI_ACTION_CALL_NOT_FOUND: { message: 'Вызов действия AI не найден', code: 'WRITER_ACTION_006', httpCode: 404, }, WRITER_AI_ACTION_CALL_FIND_ERROR: { message: 'Ошибка при поиске вызова действия AI', code: 'WRITER_ACTION_007', httpCode: 500, }, WRITER_AI_ACTION_CALL_SAVE_ERROR: { message: 'Ошибка при сохранении вызова действия AI', code: 'WRITER_ACTION_008', httpCode: 500, }, // WRITER - SOURCES WRITER_SOURCE_NOT_FOUND: { message: 'Источник не найден', code: 'WRITER_SOURCE_001', httpCode: 404, }, WRITER_SOURCE_FIND_ERROR: { message: 'Ошибка при поиске источников', code: 'WRITER_SOURCE_002', httpCode: 500, }, WRITER_SOURCE_SAVE_ERROR: { message: 'Ошибка при сохранении источника', code: 'WRITER_SOURCE_003', httpCode: 500, }, WRITER_SOURCE_CREATE_ERROR: { message: 'Ошибка при создании источника', code: 'WRITER_SOURCE_004', httpCode: 500, }, WRITER_SOURCE_DELETE_ERROR: { message: 'Ошибка при удалении источника', code: 'WRITER_SOURCE_005', httpCode: 500, }, WRITER_SOURCE_INVALID_FILE_TYPE: { message: 'Неверный тип файла', code: 'WRITER_SOURCE_006', httpCode: 400, }, WRITER_SOURCE_METADATA_EXTRACTION_FAILED: { message: 'Ошибка при извлечении данных об источнике', code: 'WRITER_SOURCE_007', httpCode: 500, }, WRITER_SOURCE_SEARCH_SIMILAR_CHUNKS_ERROR: { message: 'Ошибка при поиске похожих фрагментов источников', code: 'WRITER_SOURCE_008', httpCode: 500, }, WRITER_SOURCE_VECTORIZATION_ERROR: { message: 'Ошибка при векторизации источников', code: 'WRITER_SOURCE_009', httpCode: 500, }, WRITER_SOURCE_TEXT_CHUNKING_ERROR: { message: 'Ошибка при разбиении текста источников на фрагменты', code: 'WRITER_SOURCE_010', httpCode: 500, }, WRITER_SOURCE_CHECK_CHUNKS_ERROR: { message: 'Ошибка при проверке векторизации источника', code: 'WRITER_SOURCE_011', httpCode: 500, }, WRITER_DOCUMENT_TOO_MANY_UNREG_DOCUMENTS: { message: 'Достигнуто максимальное количество документов для неавторизованного пользователя. Пожалуйста, авторизуйтесь.', code: 'WRITER_DOCUMENT_022', httpCode: 400, }, // WRITER - TITLE PAGE TEMPLATE WRITER_TITLE_PAGE_TEMPLATE_NOT_FOUND: { message: 'Шаблон титульной страницы не найден', code: 'WRITER_TITLE_PAGE_TEMPLATE_001', httpCode: 404, }, WRITER_TITLE_PAGE_TEMPLATE_FIND_ERROR: { message: 'Ошибка при поиске шаблона титульной страницы', code: 'WRITER_TITLE_PAGE_TEMPLATE_002', httpCode: 500, }, WRITER_TITLE_PAGE_TEMPLATE_SAVE_ERROR: { message: 'Ошибка при сохранении шаблона титульной страницы', code: 'WRITER_TITLE_PAGE_TEMPLATE_003', httpCode: 500, }, // WRITER - GENERATION WRITER_GENERATE_OUTLINE_ERROR: { message: 'Ошибка при генерации плана', code: 'WRITER_GENERATE_001', httpCode: 500, }, WRITER_EXPORT_DOCX_ERROR: { message: 'Ошибка при экспорте документа в формат docx', code: 'WRITER_GENERATE_002', httpCode: 500, }, WRITER_GENERATE_DOCUMENT_CONTENTS_ERROR: { message: 'Ошибка при генерации содержимого документа', code: 'WRITER_GENERATE_003', httpCode: 500, }, WRITER_DELETE_ALL_DOCUMENTS_ERROR: { message: 'Ошибка при удалении всех документов', code: 'WRITER_GENERATE_004', httpCode: 500, }, WRITER_SET_REACTION_ERROR: { message: 'Ошибка при установке реакции на документ', code: 'WRITER_GENERATE_005', httpCode: 500, }, WRITER_UPDATE_DOCUMENT_CONTENTS_ERROR: { message: 'Ошибка при обновлении содержимого документа', code: 'WRITER_GENERATE_006', httpCode: 500, }, WRITER_EXTEND_TEXT_ERROR: { message: 'Ошибка при расширении текста', code: 'WRITER_GENERATE_007', httpCode: 500, }, WRITER_FIX_ERRORS_ERROR: { message: 'Ошибка при исправлении ошибок в тексте', code: 'WRITER_GENERATE_008', httpCode: 500, }, WRITER_GENERATE_TEXT_ERROR: { message: 'Ошибка при генерации текста', code: 'WRITER_GENERATE_009', httpCode: 500, }, WRITER_PARAPHRASE_ERROR: { message: 'Ошибка при перефразировании текста', code: 'WRITER_GENERATE_010', httpCode: 500, }, WRITER_SHORTEN_TEXT_ERROR: { message: 'Ошибка при сокращении текста', code: 'WRITER_GENERATE_011', httpCode: 500, }, WRITER_CREATE_DOCUMENT_ERROR: { message: 'Ошибка при создании документа', code: 'WRITER_GENERATE_012', httpCode: 500, }, // PROMPT MODERATION PROMPT_MODERATION_PROMPT_NOT_COMPLIANT: { message: 'Промпт не соответствует требованиям', code: 'PROMPT_MOD_001', httpCode: 400, }, PROMPT_MODERATION_AI_ERROR: { message: 'Ошибка при проверке промпта с помощью AI', code: 'PROMPT_MOD_002', httpCode: 500, }, PROMPT_MODERATION_LOG_SAVE_ERROR: { message: 'Ошибка при сохранении журнала проверки промпта', code: 'PROMPT_MOD_003', httpCode: 500, }, // S3 S3_GET_FILE_STREAM_ERROR: { message: 'Ошибка при получении потока файла', code: 'S3_001', httpCode: 500, }, S3_UPLOAD_STREAM_ERROR: { message: 'Ошибка при загрузке потока файла', code: 'S3_002', httpCode: 500, }, S3_UPLOAD_ERROR: { message: 'Ошибка при загрузке файла', code: 'S3_003', httpCode: 500, }, S3_DELETE_OBJECTS_ERROR: { message: 'Ошибка при удалении файлов', code: 'S3_004', httpCode: 500, }, // INTERNAL INTERNAL_SERVER_ERROR: { message: 'Внутренняя ошибка сервера', code: 'INTERNAL_001', httpCode: 500, }, // VK VK_STATE_ERROR: { message: 'VK state error', code: 'VK_001', httpCode: 400, }, VK_GET_ACCESS_TOKEN_ERROR: { message: 'Failed to get VK access token', code: 'VK_002', httpCode: 500, }, VK_GET_USER_INFO_ERROR: { message: 'Failed to get VK user info', code: 'VK_003', httpCode: 500, }, VK_REGISTER_CONFLICT: { message: 'VK user already exists', code: 'VK_004', httpCode: 409, }, // YANDEX YANDEX_REGISTER_CONFLICT: { message: 'Yandex user already exists', code: 'YANDEX_001', httpCode: 409, }, YANDEX_GET_ACCESS_TOKEN_ERROR: { message: 'Failed to get Yandex access token', code: 'A175', httpCode: 500, }, YANDEX_GET_USER_INFO_ERROR: { message: 'Failed to get Yandex user info', code: 'A176', httpCode: 500, }, // TELEGRAM TELEGRAM_AUTH_SESSION_UPDATE_ERROR: { message: 'Failed to update telegram auth session', code: 'TELEGRAM_001', httpCode: 500, }, TELEGRAM_CONNECT_CREATE_ERROR: { message: 'Failed to create telegram connect', code: 'TELEGRAM_002', httpCode: 500, }, // PARTNER PARTNER_NOT_FOUND: { message: 'Partner not found', code: 'PARTNER_001', httpCode: 404, }, // FILES FILE_NOT_FOUND: { message: 'Файл не найден', code: 'FILE_001', httpCode: 404, }, FILE_SAVE_ERROR: { message: 'Ошибка при сохранении файла', code: 'FILE_001', httpCode: 500, }, FILE_DELETE_ERROR: { message: 'Ошибка при удалении файла', code: 'FILE_002', httpCode: 500, }, FILE_FIND_ERROR: { message: 'Ошибка при поиске файла', code: 'FILE_003', httpCode: 500, }, // PAGE QUESTION PAGE_QUESTION_NOT_FOUND: { message: 'Вопрос не найден', code: 'PAGE_QUESTION_001', httpCode: 404, }, PAGE_QUESTION_FIND_ERROR: { message: 'Ошибка при поиске вопросов', code: 'PAGE_QUESTION_002', httpCode: 500, }, PAGE_QUESTION_CREATE_ERROR: { message: 'Ошибка при создании вопроса', code: 'PAGE_QUESTION_003', httpCode: 500, }, PAGE_QUESTION_UPDATE_ERROR: { message: 'Ошибка при обновлении вопроса', code: 'PAGE_QUESTION_004', httpCode: 500, }, PAGE_QUESTION_SAVE_ERROR: { message: 'Ошибка при сохранении вопроса', code: 'PAGE_QUESTION_005', httpCode: 500, }, PAGE_QUESTION_DELETE_ERROR: { message: 'Ошибка при удалении вопроса', code: 'PAGE_QUESTION_006', httpCode: 500, }, // SOLVING_EDU_TASK SOLVING_EDU_TASK_MODEL_NOT_FOUND: { message: 'Модель решения задач не найдена', code: 'SOLVING_EDU_TASK_001', httpCode: 404, }, SOLVING_EDU_TASK_MODEL_INACTIVE: { message: 'Модель решения задач неактивна', code: 'SOLVING_EDU_TASK_002', httpCode: 400, }, SOLVING_EDU_TASK_JOB_NOT_FOUND: { message: 'Задача решения не найдена', code: 'SOLVING_EDU_TASK_003', httpCode: 404, }, SOLVING_EDU_TASK_JOB_CREATE_ERROR: { message: 'Ошибка при создании задачи решения', code: 'SOLVING_EDU_TASK_004', httpCode: 500, }, SOLVING_EDU_TASK_JOB_FIND_ERROR: { message: 'Ошибка при поиске задачи решения', code: 'SOLVING_EDU_TASK_005', httpCode: 500, }, SOLVING_EDU_TASK_JOB_SAVE_ERROR: { message: 'Ошибка при сохранении задачи решения', code: 'SOLVING_EDU_TASK_006', httpCode: 500, }, SOLVING_EDU_TASK_JOB_DELETE_ERROR: { message: 'Ошибка при удалении задачи решения', code: 'SOLVING_EDU_TASK_007', httpCode: 500, }, SOLVING_EDU_TASK_PROMPT_TOO_LONG: { message: 'Текст задачи слишком длинный', code: 'SOLVING_EDU_TASK_008', httpCode: 400, }, SOLVING_EDU_TASK_AI_REQUEST_ERROR: { message: 'Ошибка при запросе к AI для решения задачи', code: 'SOLVING_EDU_TASK_009', httpCode: 500, }, SOLVING_EDU_TASK_RETRY_INVALID_STATUS: { message: 'Невозможно повторить задачу с текущим статусом', code: 'SOLVING_EDU_TASK_010', httpCode: 400, }, SOLVING_EDU_TASK_INVALID_IMAGE_FILE_TYPE: { message: 'Неподдерживаемый тип изображения. Разрешены только JPEG, PNG и WebP', code: 'SOLVING_EDU_TASK_011', httpCode: 400, }, SOLVING_EDU_TASK_TOO_MANY_IMAGES: { message: 'Превышено максимальное количество изображений', code: 'SOLVING_EDU_TASK_012', httpCode: 400, }, TOOLS_UNIFIED_HISTORY_FETCH_ERROR: { message: 'Ошибка при получении истории операций', code: 'TOOLS_001', httpCode: 500, }, // PRESENTATION PRESENTATION_SAVE_ERROR: { message: 'Ошибка при сохранении презентации', code: 'PRESENTATION_001', httpCode: 500, }, PRESENTATION_NOT_FOUND: { message: 'Презентация не найдена', code: 'PRESENTATION_002', httpCode: 404, }, PRESENTATION_OWNERSHIP_ERROR: { message: 'Пользователь не является владельцем презентации', code: 'PRESENTATION_003', httpCode: 403, }, PRESENTATION_STAGE_OUTLINE_GENERATED_REQUIRED: { message: 'Требуется стадия генерации плана презентации', code: 'PRESENTATION_004', httpCode: 400, }, PRESENTATION_TOO_MANY_SLIDES: { message: 'Слишком много слайдов в презентации', code: 'PRESENTATION_005', httpCode: 400, }, PRESENTATION_TOO_FEW_SLIDES: { message: 'Слишком мало слайдов в презентации', code: 'PRESENTATION_006', httpCode: 400, }, PRESENTATION_CREATE_BLANK_SLIDE_ERROR: { message: 'Ошибка при создании пустого слайда', code: 'PRESENTATION_007', httpCode: 500, }, PRESENTATION_SLIDE_NOT_FOUND: { message: 'Слайд не найден', code: 'PRESENTATION_008', httpCode: 404, }, PRESENTATION_INVALID_CONTENT_TYPE_CHANGE: { message: 'Недопустимое изменение типа содержимого', code: 'PRESENTATION_009', httpCode: 400, }, PRESENTATION_SLIDE_IMAGE_SLOT_NOT_FOUND: { message: 'Слот изображения слайда не найден', code: 'PRESENTATION_010', httpCode: 404, }, PRESENTATION_SLIDE_IMAGE_UPDATE_ERROR: { message: 'Ошибка при обновлении изображения слайда', code: 'PRESENTATION_011', httpCode: 500, }, PRESENTATION_IMAGE_GENERATION_ERROR: { message: 'Ошибка при генерации изображения', code: 'PRESENTATION_012', httpCode: 500, }, PRESENTATION_INVALID_SLIDE_POSITION: { message: 'Недопустимая позиция слайда', code: 'PRESENTATION_013', httpCode: 400, }, PRESENTATION_OUTLINE_UPDATE_ERROR: { message: 'Ошибка при обновлении плана презентации', code: 'PRESENTATION_014', httpCode: 500, }, PRESENTATION_SAVE_SLIDES_ERROR: { message: 'Ошибка при сохранении слайдов', code: 'PRESENTATION_015', httpCode: 500, }, PRESENTATION_GENERATE_OUTLINE_ERROR: { message: 'Ошибка при генерации плана презентации', code: 'PRESENTATION_016', httpCode: 500, }, PRESENTATION_FIND_ERROR: { message: 'Ошибка при поиске презентации', code: 'PRESENTATION_017', httpCode: 500, }, PRESENTATION_GENERATE_SLIDES_ERROR: { message: 'Ошибка при генерации слайдов', code: 'PRESENTATION_018', httpCode: 500, }, PRESENTATION_DELETE_ERROR: { message: 'Ошибка при удалении презентации', code: 'PRESENTATION_019', httpCode: 500, }, PRESENTATION_STAGE_CREATED_REQUIRED: { message: 'Требуется стадия создания презентации', code: 'PRESENTATION_020', httpCode: 400, }, PRESENTATION_STAGE_SLIDES_GENERATED_REQUIRED: { message: 'Требуется стадия генерации слайдов', code: 'PRESENTATION_021', httpCode: 400, }, PRESENTATION_REPOSITION_SLIDE_ERROR: { message: 'Ошибка при изменении позиции слайда', code: 'PRESENTATION_022', httpCode: 500, }, PRESENTATION_INVALID_ACCENT_COLOR: { message: 'Недопустимый акцентный цвет для выбранного шаблона', code: 'PRESENTATION_023', httpCode: 400, }, // SLIDE_OUTLINE SLIDE_OUTLINE_INVALID_POSITION: { message: 'Недопустимая позиция слайда в плане', code: 'SLIDE_OUTLINE_001', httpCode: 400, }, SLIDE_OUTLINE_NOT_FOUND: { message: 'Слайд в плане не найден', code: 'SLIDE_OUTLINE_002', httpCode: 404, }, SLIDE_OUTLINE_FIND_ERROR: { message: 'Ошибка при поиске слайдов в плане', code: 'SLIDE_OUTLINE_003', httpCode: 500, }, SLIDE_OUTLINE_UPDATE_ERROR: { message: 'Ошибка при обновлении слайда в плане', code: 'SLIDE_OUTLINE_004', httpCode: 500, }, SLIDE_OUTLINE_REPOSITION_ERROR: { message: 'Ошибка при изменении позиции слайда в плане', code: 'SLIDE_OUTLINE_005', httpCode: 500, }, SLIDE_OUTLINE_DELETE_ERROR: { message: 'Ошибка при удалении слайда из плана', code: 'SLIDE_OUTLINE_006', httpCode: 500, }, SLIDE_OUTLINE_SAVE_ERROR: { message: 'Ошибка при сохранении слайдов в плане', code: 'SLIDE_OUTLINE_007', httpCode: 500, }, // PPTX_GENERATION PPTX_GENERATION_INTERNAL_ERROR: { message: 'Ошибка при генерации PPTX файла', code: 'PPTX_GENERATION_001', httpCode: 500, }, // PRESENTATION_AI_ACTION PRESENTATION_AI_ACTION_PROMPT_TOO_LONG: { message: 'Промпт для действия AI слишком длинный', code: 'PRESENTATION_AI_ACTION_001', httpCode: 400, }, PRESENTATION_AI_ACTION_NOT_FOUND: { message: 'Действие AI не найдено', code: 'PRESENTATION_AI_ACTION_002', httpCode: 404, }, PRESENTATION_AI_ACTION_FIND_ERROR: { message: 'Ошибка при поиске действия AI', code: 'PRESENTATION_AI_ACTION_003', httpCode: 500, }, // AI AI_ERROR: { message: 'Ошибка при работе с AI', code: 'AI_001', httpCode: 500, }, // SLIDE_LAYOUT SLIDE_LAYOUT_FIND_ERROR: { message: 'Ошибка при поиске макета слайда', code: 'SLIDE_LAYOUT_001', httpCode: 500, }, SLIDE_LAYOUT_NOT_FOUND: { message: 'Макет слайда не найден', code: 'SLIDE_LAYOUT_002', httpCode: 404, }, SLIDE_LAYOUT_SAVE_ERROR: { message: 'Ошибка при сохранении макета слайда', code: 'SLIDE_LAYOUT_003', httpCode: 500, }, // SLIDE_IMAGE_SLOT SLIDE_IMAGE_SLOT_SAVE_ERROR: { message: 'Ошибка при сохранении слота изображения слайда', code: 'SLIDE_IMAGE_SLOT_001', httpCode: 500, }, // SLIDE_ICON_SLOT SLIDE_ICON_SLOT_SAVE_ERROR: { message: 'Ошибка при сохранении слота иконки слайда', code: 'SLIDE_ICON_SLOT_001', httpCode: 500, }, SLIDE_ICON_SLOT_SEARCH_ERROR: { message: 'Ошибка при поиске иконки для слайда', code: 'SLIDE_ICON_SLOT_002', httpCode: 500, }, // SLIDE_CONTENT_TYPE SLIDE_CONTENT_TYPE_FIND_ERROR: { message: 'Ошибка при поиске типа содержимого слайда', code: 'SLIDE_CONTENT_TYPE_001', httpCode: 500, }, // PRESENTATION_TEMPLATE PRESENTATION_TEMPLATE_NOT_FOUND: { message: 'Шаблон презентации не найден', code: 'PRESENTATION_TEMPLATE_001', httpCode: 404, }, PRESENTATION_TEMPLATE_FIND_ERROR: { message: 'Ошибка при поиске шаблона презентации', code: 'PRESENTATION_TEMPLATE_002', httpCode: 500, }, // PRESENTATION_AI_ACTION_CALL PRESENTATION_AI_ACTION_CALL_NOT_FOUND: { message: 'Вызов действия AI не найден', code: 'PRESENTATION_AI_ACTION_CALL_001', httpCode: 404, }, PRESENTATION_AI_ACTION_CALL_FIND_ERROR: { message: 'Ошибка при поиске вызова действия AI', code: 'PRESENTATION_AI_ACTION_CALL_002', httpCode: 500, }, PRESENTATION_AI_ACTION_CALL_SAVE_ERROR: { message: 'Ошибка при сохранении вызова действия AI', code: 'PRESENTATION_AI_ACTION_CALL_003', httpCode: 500, }, // LANGUAGE LANGUAGE_NOT_FOUND: { message: 'Язык не найден', code: 'LANGUAGE_001', httpCode: 404, }, LANGUAGE_FIND_ERROR: { message: 'Ошибка при поиске языка', code: 'LANGUAGE_002', httpCode: 500, }, };