pyrohlik/rohlik/models/cart.py
2024-11-17 10:38:58 +01:00

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]]