73 lines
1.9 KiB
Python
73 lines
1.9 KiB
Python
from typing import Any, List, Optional
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class Store(BaseModel):
|
|
store_id: int = Field(..., alias='storeId')
|
|
zone_id: int = Field(..., alias='zoneId')
|
|
type: str
|
|
|
|
|
|
class FlatDetails(BaseModel):
|
|
entrance: Optional[str]
|
|
floor: Optional[str]
|
|
door: Optional[str]
|
|
block: Optional[str]
|
|
apartment: Optional[str]
|
|
staircase: Optional[str]
|
|
intercom: Optional[str]
|
|
additional_info: Optional[str] = Field(..., alias='additionalInfo')
|
|
|
|
|
|
class Address(BaseModel):
|
|
id: int
|
|
city: str
|
|
street: str
|
|
house_number: str = Field(..., alias='houseNumber')
|
|
orientation_number: str = Field(..., alias='orientationNumber')
|
|
latitude: float
|
|
longitude: float
|
|
postal_code: str = Field(..., alias='postalCode')
|
|
display: str
|
|
stores: List[Store]
|
|
flat_details: FlatDetails = Field(..., alias='flatDetails')
|
|
additional_address_details: List[str] = Field(..., alias='additionalAddressDetails')
|
|
|
|
|
|
class Destination(BaseModel):
|
|
id: int
|
|
name: str
|
|
type: str
|
|
access_type: str = Field(..., alias='accessType')
|
|
location_type: str = Field(..., alias='locationType')
|
|
delivery_point_provider: Optional[str] = Field(..., alias='deliveryPointProvider')
|
|
photos: Optional[str]
|
|
address: Address
|
|
|
|
|
|
class Item(BaseModel):
|
|
product_id: int = Field(..., alias='productId')
|
|
amount: int
|
|
sale_id: int = Field(..., alias='saleId')
|
|
result: str
|
|
|
|
|
|
class Cart(BaseModel):
|
|
status: str
|
|
cart_id: int = Field(..., alias='cartId')
|
|
store: Store
|
|
destination: Destination
|
|
items: List[Item]
|
|
|
|
|
|
class AddItem(BaseModel):
|
|
source: Optional[str]
|
|
product_id: Optional[int] = Field(alias='productId')
|
|
sale_id: Optional[int] = Field(alias='saleId')
|
|
action_type: Optional[str] = Field(alias='actionType')
|
|
amount: Optional[int]
|
|
uuid: Optional[str]
|
|
|
|
|
|
class Add(BaseModel):
|
|
items: Optional[List[AddItem]]
|