28 lines
951 B
Python
28 lines
951 B
Python
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,
|
|
CreditProduct.deleted_at.is_(None),
|
|
)
|
|
.order_by(CreditProduct.sort_order, CreditProduct.id)
|
|
)
|
|
return [product_to_dict(item) for item in result.scalars().all()]
|