diff --git a/docs/stages/stage-05-2-plus-interactive-draft-builder.md b/docs/stages/stage-05-2-plus-interactive-draft-builder.md new file mode 100644 index 0000000..45b53f9 --- /dev/null +++ b/docs/stages/stage-05-2-plus-interactive-draft-builder.md @@ -0,0 +1,82 @@ +# Stage 05.2+ — Interactive Draft Builder (Advanced) + +## 📌 Общая цель +Реализовать полноценный интерактивный конструктор черновиков ордеров с UX, приближенным к реальному торговому интерфейсу, но без отправки ордеров на биржу. + +## 🚀 Что реализовано + +### 1. FSM Flow создания ордера +Пошаговый сценарий: +1. Выбор стороны (BUY / SELL) +2. Выбор типа (MARKET / LIMIT) +3. Выбор количества +4. (если LIMIT) выбор цены + +Состояния: +- waiting_side +- waiting_type +- waiting_quantity +- waiting_price + +### 2. Экранный UX (edit_message) +- Все шаги происходят в одном сообщении (edit_text) +- Нет “засорения” чата +- Поведение как у мини-приложения внутри Telegram + +### 3. Навигация +- Кнопка ⬅️ Назад на каждом этапе +- Кнопка ✖️ Отмена +- Возврат к предыдущему шагу или в экран "Торговля" + +### 4. Smart Draft Builder +Количество: +- 25% / 50% / 75% / 100% +- ручной ввод + +Цена (LIMIT): +- Bid / Ask / Last +- ручной ввод + +### 5. Контекст от биржи +- инструмент (symbol) +- доступный баланс +- ориентир цены +- Bid / Ask / Last + +### 6. Валидация +- проверка количества +- проверка цены +- ошибки через ValueError + +### 7. Сохранение черновиков +- через OrderDraftsService +- статус: draft + +### 8. Экран "Черновики" +- по 3 записи +- пагинация: + - ⏮️ ⬅️ X/Y ➡️ +- кнопка: ⬅️ К торговле + +### 9. Единый стиль экранов +Формат: +⚡ Торговля — <раздел> + +### 10. Режим работы +‼️ Режим черновика +- ордера не отправляются +- безопасный режим + +## 📊 Итог +Stage 05.2+: +- FSM builder ✅ +- UI через кнопки ✅ +- экранный режим ✅ +- smart presets ✅ +- пагинация ✅ + +## 🔜 Следующий этап +Stage 05.3 или Stage 06 + +## 🧾 Commit +Stage 05.2+ - advanced interactive draft builder diff --git a/docs/stages/stage-05-3-order-validation-and-logging.md b/docs/stages/stage-05-3-order-validation-and-logging.md new file mode 100644 index 0000000..115d58b --- /dev/null +++ b/docs/stages/stage-05-3-order-validation-and-logging.md @@ -0,0 +1,120 @@ +# Stage 05.3 — Order Validation & Error Logging + +## 📌 Общая цель +Усилить надежность системы создания ордеров через строгую валидацию, обработку ошибок и логирование всех критичных событий. + +--- + +## 🚀 Что реализовано + +### 1. Расширенная валидация ордеров + +Добавлены проверки: + +- корректность количества (quantity > 0) +- корректность цены (price > 0 для LIMIT) +- обязательность цены для LIMIT ордеров +- допустимость значений + +Ошибки агрегируются и возвращаются списком. + +--- + +### 2. Обработка ошибок + +Все ошибки: +- перехватываются на уровне handler +- отображаются пользователю + +Формат: +❌ Черновик не сохранён + +Причины: +• ... +• ... + +--- + +### 3. Логирование ошибок (Journal) + +При возникновении ошибок: + +- событие записывается в JournalService +- уровень логирования: + - ERROR + - WARNING + - INFO + +Примеры событий: +- order_draft_validation_failed +- order_draft_saved +- order_draft_error + +--- + +### 4. Уровни логирования + +Добавлена градация: + +- ℹ️ INFO — обычные события +- ⚠️ WARNING — потенциальные проблемы +- ❌ ERROR — ошибки + +--- + +### 5. Интеграция с Journal UI + +Ошибки отображаются в: +📒 Журнал + +Пользователь может: +- видеть последние события +- листать страницы +- различать уровни по emoji + +--- + +### 6. UX при ошибках + +- пользователь остаётся в контексте +- ошибки отображаются понятно +- есть возможность начать заново + +--- + +## 🧠 Архитектура + +Компоненты: + +- OrderDraftsService (валидация) +- JournalService (логирование) +- Telegram handlers (отображение) + +--- + +## 📊 Итог + +Stage 05.3 включает: + +| Функция | Статус | +|--------|--------| +| Валидация ордера | ✅ | +| Агрегация ошибок | ✅ | +| Логирование | ✅ | +| Уровни логов | ✅ | +| Интеграция с UI | ✅ | + +--- + +## 🔜 Следующий этап + +Stage 06: +- подтверждение ордера +- отправка на биржу +- обработка ответа + +--- + +## 🧾 Commit + +Stage 05.3 - order validation, error handling and journal logging diff --git a/docs/stages/stage-05-3-order-validation.md b/docs/stages/stage-05-3-order-validation.md deleted file mode 100644 index 5f47ac1..0000000 --- a/docs/stages/stage-05-3-order-validation.md +++ /dev/null @@ -1,28 +0,0 @@ -# Stage 05.3 — Order Validation - -## Цель -Добавить слой валидации черновика ордера перед сохранением в БД. - -## Что реализовано -- `OrderValidationResult` -- `validate_draft()` в `OrderDraftsService` -- проверки: - - сторона BUY / SELL - - тип MARKET / LIMIT - - валидность символа - - количество > 0 - - цена для LIMIT - - соответствие цены шагу `tickSize`, если он доступен - -## UX -- невалидный draft не сохраняется -- пользователь видит понятный список причин -- в журнале пишется `order_draft_validation_failed` - -## Ограничения -- пока нет `minQty` -- пока нет `minNotional` -- пока нет confirm screen - -## Следующий этап -- Stage 05.4 — confirmation screen