arbret/backend/routes/pricing.py

34 lines
1.1 KiB
Python
Raw Permalink Normal View History

"""Pricing routes for admin to manage pricing configuration."""
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from auth import require_permission
from database import get_db
from models import Permission, User
from schemas import PricingConfigResponse, PricingConfigUpdate
from services.pricing import PricingService
router = APIRouter(prefix="/api/admin/pricing", tags=["pricing"])
@router.get("", response_model=PricingConfigResponse)
async def get_pricing_config(
db: AsyncSession = Depends(get_db),
_current_user: User = Depends(require_permission(Permission.MANAGE_PRICING)),
) -> PricingConfigResponse:
"""Get current pricing configuration."""
service = PricingService(db)
return await service.get_config()
@router.put("", response_model=PricingConfigResponse)
async def update_pricing_config(
request: PricingConfigUpdate,
db: AsyncSession = Depends(get_db),
_current_user: User = Depends(require_permission(Permission.MANAGE_PRICING)),
) -> PricingConfigResponse:
"""Update pricing configuration."""
service = PricingService(db)
return await service.update_config(request)