Files
Fulfillment-Backend/schemas/statistics.py

56 lines
1.1 KiB
Python

import datetime
from optparse import Option
from typing import List, Tuple, Optional
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
expenses: float
deals_count: int
class ProfitTableDataItem(BaseSchema):
grouped_value: datetime.date | str | int
revenue: float
profit: float
expenses: Optional[float] = 0
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