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 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 GetProfitChartDataResponse(BaseSchema): data: List[ProfitChartDataItem] class GetProfitTableDataResponse(BaseSchema): data: List[ProfitTableDataItem] # endregion