[docs]@router.get("/api/admin/usage/report/{username}")asyncdefget_user_report(request:Request,username:str,start_date:Optional[str]=None,end_date:Optional[str]=None):"""Get usage report for a specific user"""try:storage=UsageStorage(get_base_path())report=UsageReport(storage)start=date.fromisoformat(start_date)ifstart_dateelseNoneend=date.fromisoformat(end_date)ifend_dateelseNonereport_data=awaitreport.get_user_report(username,start,end)returnJSONResponse(report_data)exceptValueErrorase:raiseHTTPException(status_code=400,detail=str(e))
[docs]@router.get("/api/admin/usage/summary/{username}")asyncdefget_user_summary(request:Request,username:str,start_date:Optional[str]=None,end_date:Optional[str]=None):"""Get cost summary for a specific user"""try:storage=UsageStorage(get_base_path())report=UsageReport(storage)start=date.fromisoformat(start_date)ifstart_dateelseNoneend=date.fromisoformat(end_date)ifend_dateelseNonesummary=awaitreport.get_cost_summary(username,start,end)returnJSONResponse(summary)exceptValueErrorase:raiseHTTPException(status_code=400,detail=str(e))
[docs]@router.get("/api/admin/usage/daily/{username}")asyncdefget_user_daily(request:Request,username:str,start_date:Optional[str]=None,end_date:Optional[str]=None):"""Get daily cost breakdown for a specific user"""try:storage=UsageStorage(get_base_path())report=UsageReport(storage)start=date.fromisoformat(start_date)ifstart_dateelseNoneend=date.fromisoformat(end_date)ifend_dateelseNonedaily_costs=awaitreport.get_daily_costs(username,start,end)returnJSONResponse(daily_costs)exceptValueErrorase:raiseHTTPException(status_code=400,detail=str(e))