Stage 05.1 - order draft flow

This commit is contained in:
2026-04-16 21:23:35 +03:00
parent 76fc122955
commit f662ff1901
9 changed files with 185 additions and 2 deletions

View File

@@ -0,0 +1,53 @@
from __future__ import annotations
from aiogram import Router
from aiogram.filters import Command
from aiogram.types import Message
from src.trading.orders.service import OrderDraftsService
router = Router(name="trade_new_order")
@router.message(Command("new_order"))
async def create_new_order_draft(message: Message) -> None:
service = OrderDraftsService()
draft = service.create_default_draft()
text = (
"<b>📝 Черновик ордера создан</b>\n\n"
f"• инструмент: {draft.symbol}\n"
f"• сторона: {draft.side}\n"
f"• тип: {draft.order_type}\n"
f"• количество: {draft.quantity}\n"
f"• статус: {draft.status}\n\n"
"Это тестовый draft flow. Реальный ордер не отправлялся."
)
await message.answer(text)
@router.message(Command("drafts"))
async def show_recent_drafts(message: Message) -> None:
service = OrderDraftsService()
drafts = service.list_recent_drafts(limit=5)
if not drafts:
await message.answer(
"<b>📝 Черновики ордеров</b>\n\n"
"Черновиков пока нет."
)
return
lines = ["<b>📝 Черновики ордеров</b>", "", "<b>Последние записи</b>", ""]
for item in drafts:
lines.extend(
[
f"{item['symbol']} | {item['side']} | {item['order_type']}",
f" qty: {item['quantity']} | status: {item['status']}",
f" time: {item['created_at']}",
"",
]
)
await message.answer("\n".join(lines).rstrip())