Files
Fulfillment-Backend/schemas/statistics.py

53 lines
1018 B
Python

import datetime
from typing import List, Tuple
from enums.profit_table_group_by import ProfitTableGroupBy
from schemas.base import BaseSchema
# region Entities
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 CommonProfitFilters(BaseSchema):
date_range: Tuple[datetime.date, datetime.date]
client_id: int
base_marketplace_key: str
deal_status_id: int
manager_id: int
class GetProfitChartDataRequest(CommonProfitFilters):
pass
class GetProfitTableDataRequest(CommonProfitFilters):
group_table_by: ProfitTableGroupBy
# endregion
# region Responses
class GetProfitChartDataResponse(BaseSchema):
data: List[ProfitChartDataItem]
class GetProfitTableDataResponse(BaseSchema):
data: List[ProfitTableDataItem]
# endregion