habulaj commited on
Commit
d02d9e5
·
verified ·
1 Parent(s): b2dda13

Update routes/dashboard_home.py

Browse files
Files changed (1) hide show
  1. routes/dashboard_home.py +1 -71
routes/dashboard_home.py CHANGED
@@ -6,8 +6,7 @@ import pytz
6
  from fastapi import APIRouter, HTTPException, Header, Query
7
  from datetime import datetime, timedelta
8
  from dateutil.relativedelta import relativedelta
9
- from typing import Dict, Any, Optional
10
- from pydantic import BaseModel
11
 
12
  router = APIRouter()
13
 
@@ -30,11 +29,6 @@ SUPABASE_HEADERS = {
30
  logging.basicConfig(level=logging.INFO)
31
  logger = logging.getLogger(__name__)
32
 
33
- # Modelo para requisições com período de tempo opcional
34
- class DateRangeRequest(BaseModel):
35
- start_date: Optional[str] = None # Formato: 'YYYY-MM-DD'
36
- end_date: Optional[str] = None # Formato: 'YYYY-MM-DD'
37
-
38
  def verify_admin_token(user_token: str) -> str:
39
  """Verifica se o token pertence a um administrador"""
40
  headers = {
@@ -347,68 +341,4 @@ def get_admin_dashboard(
347
 
348
  except Exception as e:
349
  logger.error(f"❌ Erro ao gerar dashboard administrativo: {str(e)}")
350
- raise HTTPException(status_code=500, detail=str(e))
351
-
352
- @router.post("/admin/dashboard/custom_period")
353
- def get_custom_period_dashboard(
354
- date_range: DateRangeRequest,
355
- user_token: str = Header(None, alias="User-key")
356
- ):
357
- """
358
- Endpoint para dashboard administrativo com métricas de faturamento
359
- para um período personalizado
360
- """
361
- try:
362
- # Verificar se é um administrador
363
- user_id = verify_admin_token(user_token)
364
-
365
- # Converter datas para timestamps
366
- start_timestamp = None
367
- end_timestamp = None
368
-
369
- if date_range.start_date:
370
- start_date = datetime.fromisoformat(date_range.start_date)
371
- start_timestamp = int(start_date.timestamp())
372
-
373
- if date_range.end_date:
374
- # Se temos apenas a data, queremos incluir o dia inteiro
375
- end_date = datetime.fromisoformat(date_range.end_date)
376
- end_date = datetime(end_date.year, end_date.month, end_date.day, 23, 59, 59)
377
- end_timestamp = int(end_date.timestamp())
378
-
379
- # Obter dados gerais de faturamento
380
- revenue_data = get_total_platform_revenue(start_timestamp, end_timestamp)
381
- transfer_data = get_platform_transfers(start_timestamp, end_timestamp)
382
-
383
- # Calcular divisão de receita entre app e estilistas
384
- revenue_share = get_app_revenue_share(
385
- revenue_data["successful_revenue"],
386
- transfer_data["total_transferred_to_stylists"]
387
- )
388
-
389
- # Obter dados de usuários
390
- user_data = get_platform_users()
391
-
392
- return {
393
- "total_revenue": revenue_data["successful_revenue"],
394
- "failed_revenue": revenue_data["failed_revenue"],
395
- "total_transferred_to_stylists": transfer_data["total_transferred_to_stylists"],
396
- "app_revenue": revenue_share["app_revenue"],
397
- "app_revenue_percentage": revenue_share["app_percentage"],
398
- "stylists_revenue_percentage": revenue_share["stylists_percentage"],
399
- "payment_count": revenue_data["payment_count"],
400
- "transfer_count": transfer_data["transfer_count"],
401
- "currency": "BRL",
402
- "period": {
403
- "start_date": date_range.start_date,
404
- "end_date": date_range.end_date
405
- },
406
- "users": user_data
407
- }
408
-
409
- except HTTPException as he:
410
- raise he
411
-
412
- except Exception as e:
413
- logger.error(f"❌ Erro ao gerar dashboard para período personalizado: {str(e)}")
414
  raise HTTPException(status_code=500, detail=str(e))
 
6
  from fastapi import APIRouter, HTTPException, Header, Query
7
  from datetime import datetime, timedelta
8
  from dateutil.relativedelta import relativedelta
9
+ from typing import Dict, Any
 
10
 
11
  router = APIRouter()
12
 
 
29
  logging.basicConfig(level=logging.INFO)
30
  logger = logging.getLogger(__name__)
31
 
 
 
 
 
 
32
  def verify_admin_token(user_token: str) -> str:
33
  """Verifica se o token pertence a um administrador"""
34
  headers = {
 
341
 
342
  except Exception as e:
343
  logger.error(f"❌ Erro ao gerar dashboard administrativo: {str(e)}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
344
  raise HTTPException(status_code=500, detail=str(e))