From 1061aa99813bac07f5f9f914a2926c3257318c57 Mon Sep 17 00:00:00 2001 From: adriano Date: Thu, 4 Sep 2025 16:15:15 -0300 Subject: [PATCH] perf: added property to return totatCost --- backend/app/routes/usage_routes.py | 19 +++++++++------ backend/app/schemas/transcription_schema.py | 1 + backend/app/services/report_service.py | 26 +++++++++++---------- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/backend/app/routes/usage_routes.py b/backend/app/routes/usage_routes.py index b6df1ea..3604661 100644 --- a/backend/app/routes/usage_routes.py +++ b/backend/app/routes/usage_routes.py @@ -93,14 +93,18 @@ class TranscriptionUsageData(Resource): """ Get transcription report data. """ + + print('request.args.get("totalCost"): ', request.args.get("totalCost")) + data = { "company_id": request.args.get("companyId", type=str), "start_date": request.args.get("startDate"), "end_date": request.args.get("endDate"), - "who": request.args.get("who", type=str) + "who": request.args.get("who", type=str), + "totalCost": request.args.get("totalCost", type=str, default="true") } - - validated = TranscriptionRequest(**data) + + validated = TranscriptionRequest(**data) page = request.args.get("page", default=1, type=int) page_size = request.args.get("page_size", default=20, type=int) @@ -109,13 +113,14 @@ class TranscriptionUsageData(Resource): validated.company_id, validated.start_date, validated.end_date - ) - + ) + + totalCost = True if validated.totalCost == "true" else False if validated.who == "hit": - result = service.reportData(page=page, page_size=page_size,hit_report=True) + result = service.reportData(page=page, page_size=page_size,hit_report=True,totalCost=totalCost) else: - result = service.reportData(page=page, page_size=page_size) + result = service.reportData(page=page, page_size=page_size,hit_report=False,totalCost=totalCost) return {"success": True, "data": {"data": result["data"], "pagination": result["pagination"], "cost":result["cost"]}}, 200 diff --git a/backend/app/schemas/transcription_schema.py b/backend/app/schemas/transcription_schema.py index bbbc1da..f0b4ebb 100644 --- a/backend/app/schemas/transcription_schema.py +++ b/backend/app/schemas/transcription_schema.py @@ -6,3 +6,4 @@ class TranscriptionRequest(BaseModel): start_date: str end_date: str who: Literal['hit', 'client'] + totalCost: Optional[Literal['true', 'false']] diff --git a/backend/app/services/report_service.py b/backend/app/services/report_service.py index d80a937..ee16df6 100644 --- a/backend/app/services/report_service.py +++ b/backend/app/services/report_service.py @@ -365,31 +365,33 @@ class TranscriptionReportService: return self._create_excel(mysql_data) - def reportData(self, page: int = 1, page_size: int = 20, hit_report: Optional[bool] = False) -> Dict[str, Any]: + def reportData(self, page: int = 1, page_size: int = 20, hit_report: Optional[bool] = False, totalCost: Optional[bool] = True) -> Dict[str, Any]: mongo_data = self._fetch_mongo_data(page=page, page_size=page_size) - + + cost_data = { + 'company_id': self.company_id, + 'start_date': self.start_date, + 'end_date': self.end_date, + 'total_cost_hit': 0, + 'total_client_cost': 0 + } + if mongo_data["total"] == 0: return { "pagination": mongo_data, "data": [], - "cost": { - 'company_id': self.company_id, - 'start_date': self.start_date, - 'end_date': self.end_date, - 'total_cost_hit': 0, - 'total_client_cost': 0 - } + "cost": cost_data } if hit_report: mysql_data = self._fetch_mysql_data(hit_report=True) else: - mysql_data = self._fetch_mysql_data() - + mysql_data = self._fetch_mysql_data() + return { "pagination": mongo_data, "data": mysql_data, - "cost": self._reportDataTotalCost() + "cost": self._reportDataTotalCost() if totalCost else cost_data }