"""Payment repository — Order data access.""" from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from app.features.payment.models import Order async def get_order_by_id(order_id: str, db: AsyncSession) -> Order | None: return await db.get(Order, order_id) async def get_orders_by_user(user_id: str, db: AsyncSession) -> list[Order]: stmt = select(Order).where(Order.user_id == user_id).order_by(Order.created_at.desc()) result = await db.execute(stmt) return list(result.scalars().all()) async def get_order_by_trade_no(out_trade_no: str, db: AsyncSession) -> Order | None: stmt = select(Order).where(Order.id == out_trade_no) result = await db.execute(stmt) return result.scalar_one_or_none()