"""Sum calculation routes.""" 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, SumRecord, User from schemas import SumRequest, SumResponse router = APIRouter(prefix="/api/sum", tags=["sum"]) @router.post("", response_model=SumResponse) async def calculate_sum( data: SumRequest, db: AsyncSession = Depends(get_db), current_user: User = Depends(require_permission(Permission.USE_SUM)), ) -> SumResponse: """Calculate the sum of two numbers and record it.""" result = data.a + data.b record = SumRecord( user_id=current_user.id, a=data.a, b=data.b, result=result, ) db.add(record) await db.commit() return SumResponse(a=data.a, b=data.b, result=result)