ishaq101's picture
[NOTICKET] Fix scorecard rounding percent_extracted
06067fa
from externals.databases.pg_crud import (
count_files_by_user,
count_profiles_by_user,
)
from externals.databases.pg_models import CVUser
from sqlalchemy.ext.asyncio import AsyncSession
from utils.logger import get_logger
logger = get_logger("score card")
class KnowledgeScoreCardService:
def __init__(self, db: AsyncSession, user: CVUser):
self.db = db
self.user = user
async def get_score_card(self) -> dict:
"""
Retrieve extracted profile securely
"""
# Count total files for this user (from cv_file table)
total_file = await count_files_by_user(self.db, self.user.user_id)
# Count total extracted profiles associated with this user's files
total_extracted = await count_profiles_by_user(self.db, self.user.user_id)
# percent as 0-1, safely handle division by zero
percent_extracted = round(total_extracted / total_file, 2) if total_file else 0.0
score_card = {
"total_file": total_file,
"total_extracted": total_extracted,
"percent_extracted": round(percent_extracted*100, 0) if total_file else 0,
}
return score_card