galaxis-po/backend/app/api/tax_simulation.py

55 lines
1.5 KiB
Python
Raw Normal View History

"""
Tax simulation API endpoints.
"""
from fastapi import APIRouter
from app.schemas.tax_simulation import (
AccumulationRequest,
AccumulationResponse,
PensionTaxRequest,
PensionTaxResponse,
TaxDeductionRequest,
TaxDeductionResponse,
)
from app.services.tax_simulation import (
calculate_pension_tax,
calculate_tax_deduction,
simulate_accumulation,
)
router = APIRouter(prefix="/api/tax", tags=["tax-simulation"])
@router.post("/deduction", response_model=TaxDeductionResponse)
async def tax_deduction(request: TaxDeductionRequest):
"""연간 세액공제 계산."""
result = calculate_tax_deduction(
annual_income=request.annual_income,
contribution=request.contribution,
account_type=request.account_type.value,
)
return result
@router.post("/pension-tax", response_model=PensionTaxResponse)
async def pension_tax(request: PensionTaxRequest):
"""연금 수령 시 세금 비교."""
result = calculate_pension_tax(
withdrawal_amount=request.withdrawal_amount,
withdrawal_type=request.withdrawal_type.value,
age=request.age,
)
return result
@router.post("/accumulation", response_model=AccumulationResponse)
async def accumulation(request: AccumulationRequest):
"""적립 시뮬레이션."""
result = simulate_accumulation(
monthly_contribution=request.monthly_contribution,
years=request.years,
annual_return=request.annual_return,
tax_deduction_rate=request.tax_deduction_rate,
)
return result