from fastapi import APIRouter, Depends, status
from app.deps import verify_internal_token
from app.schemas.badges import BadgeRecommendRequest, BadgeRecommendResponse
from app.services.badges import BadgesService

router = APIRouter(prefix="/badges")
_service = BadgesService()


@router.post(
    "/recommend",
    response_model=BadgeRecommendResponse,
    status_code=status.HTTP_200_OK,
    summary="Achievement Badge Recommendations",
    dependencies=[Depends(verify_internal_token)],
)
async def recommend_badges(payload: BadgeRecommendRequest) -> BadgeRecommendResponse:
    return await _service.recommend(payload)
