from fastapi import APIRouter, Depends from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from app.dependencies import get_admin_user, get_db from app.enums.credit_product import CreditProductType from app.models.credit.product import CreditProduct from app.models.user import User from app.services.credit.product_service import product_to_dict router = APIRouter(prefix="/admin/recharge-packages", tags=["admin-recharge-packages"]) @router.get("") async def admin_list_packages( admin: User = Depends(get_admin_user), db: AsyncSession = Depends(get_db), ): result = await db.execute( select(CreditProduct) .where(CreditProduct.product_type == CreditProductType.CREDIT_ADDON.value) .order_by(CreditProduct.sort_order, CreditProduct.id) ) return [product_to_dict(item) for item in result.scalars().all()]