Merge remote-tracking branch 'origin/statistics'
# Conflicts: # main.py # routers/__init__.py # schemas/deal.py
This commit is contained in:
@@ -6,7 +6,7 @@ from pydantic import constr, field_validator
|
||||
|
||||
from models import ServiceCategoryPrice, ServicePriceCategory, Deal, Product, DealProduct, DealStatusHistory
|
||||
from schemas.base import BaseSchema, OkMessageSchema
|
||||
from schemas.billing import DealBillRequestSchema, GroupBillRequestSchema
|
||||
from schemas.billing import DealBillRequestSchema,GroupBillRequestSchema
|
||||
from schemas.client import ClientSchema
|
||||
from schemas.marketplace import BaseMarketplaceSchema
|
||||
from schemas.product import ProductSchema
|
||||
@@ -101,6 +101,7 @@ class DealSchema(BaseSchema):
|
||||
bill_request: Optional[DealBillRequestSchema] = None
|
||||
category: Optional[ServicePriceCategorySchema] = None
|
||||
group: Optional[DealGroupSchema] = None
|
||||
manager: Optional[UserSchema] = None
|
||||
|
||||
delivery_date: Optional[datetime.datetime] = None
|
||||
receiving_slot_date: Optional[datetime.datetime] = None
|
||||
@@ -114,6 +115,7 @@ class DealGeneralInfoSchema(BaseSchema):
|
||||
shipping_warehouse: Optional[str] = None
|
||||
delivery_date: Optional[datetime.datetime] = None
|
||||
receiving_slot_date: Optional[datetime.datetime] = None
|
||||
manager: Optional[UserSchema] = None
|
||||
|
||||
|
||||
# endregion Entities
|
||||
|
||||
48
schemas/statistics.py
Normal file
48
schemas/statistics.py
Normal file
@@ -0,0 +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 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
|
||||
@@ -63,4 +63,9 @@ class UpdateUserResponse(OkMessageSchema):
|
||||
|
||||
class CreateUserResponse(OkMessageSchema):
|
||||
pass
|
||||
|
||||
|
||||
class GetManagersResponse(BaseSchema):
|
||||
managers: List[UserSchema]
|
||||
|
||||
# endregion
|
||||
|
||||
Reference in New Issue
Block a user