This commit is contained in:
xds
2026-03-22 14:26:45 +03:00
parent 33694d68db
commit 466a27907a
28 changed files with 1334 additions and 71 deletions

View File

@@ -8,9 +8,11 @@ from sqlalchemy.ext.asyncio import AsyncSession
from app.database import get_db
from app.models.calculation import Calculation
from app.models.client import Client
from app.models.material import Material
from app.models.order import Order
from app.schemas.order import OrderCreate, OrderResponse
from app.services.auth import decode_access_token
from app.services.telegram_notify import notify_new_order
logger = logging.getLogger("app.routers.orders")
@@ -61,6 +63,14 @@ async def create_order(order_data: OrderCreate, db: AsyncSession = Depends(get_d
material_name = material.name if material else "Неизвестный"
logger.info("Material for notification: %s", material_name)
# Resolve client_id from token if provided
client_id = None
if order_data.client_token:
payload = decode_access_token(order_data.client_token)
if payload and payload.get("type") == "client":
client_id = int(payload["sub"])
logger.info("Order linked to client_id=%d", client_id)
order_id = await generate_order_id(db)
estimated_ready = datetime.now() + timedelta(days=calc.estimated_days or 3)
logger.info("Order ID: %s, estimated ready: %s", order_id, estimated_ready.strftime("%Y-%m-%d"))
@@ -68,6 +78,7 @@ async def create_order(order_data: OrderCreate, db: AsyncSession = Depends(get_d
order = Order(
order_id=order_id,
calculation_id=calc.id,
client_id=client_id,
client_name=order_data.client_name,
client_phone=order_data.client_phone,
client_email=order_data.client_email,