feat: profit table and division of charts in statistics
This commit is contained in:
		@@ -1,31 +1,48 @@
 | 
			
		||||
import datetime
 | 
			
		||||
from typing import List, Tuple
 | 
			
		||||
 | 
			
		||||
from enums.profit_table_group_by import ProfitTableGroupBy
 | 
			
		||||
from schemas.base import BaseSchema
 | 
			
		||||
 | 
			
		||||
# region Entities
 | 
			
		||||
 | 
			
		||||
class ProfitDataItem(BaseSchema):
 | 
			
		||||
class ProfitChartDataItem(BaseSchema):
 | 
			
		||||
    date: datetime.date
 | 
			
		||||
    revenue: float
 | 
			
		||||
    profit: float
 | 
			
		||||
    deals_count: int
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ProfitTableDataItem(BaseSchema):
 | 
			
		||||
    grouped_value: datetime.date | str | int
 | 
			
		||||
    revenue: float
 | 
			
		||||
    profit: float
 | 
			
		||||
    deals_count: int
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
 | 
			
		||||
# region Requests
 | 
			
		||||
 | 
			
		||||
class GetProfitDataRequest(BaseSchema):
 | 
			
		||||
class GetProfitChartDataRequest(BaseSchema):
 | 
			
		||||
    date_range: Tuple[datetime.date, datetime.date]
 | 
			
		||||
    client_id: int
 | 
			
		||||
    base_marketplace_key: str
 | 
			
		||||
    deal_status_id: int
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GetProfitTableDataRequest(BaseSchema):
 | 
			
		||||
    date_range: Tuple[datetime.date, datetime.date]
 | 
			
		||||
    group_table_by: ProfitTableGroupBy
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
 | 
			
		||||
# region Responses
 | 
			
		||||
 | 
			
		||||
class GetProfitDataResponse(BaseSchema):
 | 
			
		||||
    data: List[ProfitDataItem]
 | 
			
		||||
class GetProfitChartDataResponse(BaseSchema):
 | 
			
		||||
    data: List[ProfitChartDataItem]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GetProfitTableDataResponse(BaseSchema):
 | 
			
		||||
    data: List[ProfitTableDataItem]
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user