init
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user