import logging from fastapi import APIRouter, HTTPException from pydantic import BaseModel from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from fastapi import Depends from app.database import get_db from app.models.order import Order logger = logging.getLogger("app.routers.track") router = APIRouter() class TrackResponse(BaseModel): order_id: str status: str created_at: str @router.get("/track/{order_id}", response_model=TrackResponse) async def track_order(order_id: str, db: AsyncSession = Depends(get_db)): logger.info("Track order: %s", order_id) result = await db.execute(select(Order).where(Order.order_id == order_id)) order = result.scalar_one_or_none() if not order: raise HTTPException(404, "Заказ не найден") return TrackResponse( order_id=order.order_id, status=order.status, created_at=order.created_at.isoformat() if order.created_at else "", )