016 add creating order to adapter
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
"""Schemas for CDEK order registration."""
|
||||
|
||||
from typing import Literal
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class OrderPhone(BaseModel):
|
||||
number: str = Field(min_length=1)
|
||||
|
||||
|
||||
class OrderParty(BaseModel):
|
||||
company: str | None = None
|
||||
name: str = Field(min_length=1)
|
||||
email: str = Field(min_length=1)
|
||||
phones: list[OrderPhone] = Field(min_length=1)
|
||||
|
||||
|
||||
class OrderLocation(BaseModel):
|
||||
address: str = Field(min_length=1)
|
||||
city: str = Field(min_length=1)
|
||||
country_code: str = Field(min_length=2, max_length=2)
|
||||
|
||||
|
||||
class OrderService(BaseModel):
|
||||
code: str = Field(min_length=1)
|
||||
parameter: str = Field(min_length=1)
|
||||
|
||||
|
||||
class OrderPackage(BaseModel):
|
||||
number: str = Field(min_length=1)
|
||||
weight: int = Field(gt=0)
|
||||
length: int = Field(gt=0)
|
||||
width: int = Field(gt=0)
|
||||
height: int = Field(gt=0)
|
||||
comment: str | None = None
|
||||
|
||||
|
||||
class OrderCreateRequest(BaseModel):
|
||||
type: Literal[2]
|
||||
tariff_code: Literal[535]
|
||||
comment: str | None = None
|
||||
sender: OrderParty
|
||||
recipient: OrderParty
|
||||
from_location: OrderLocation
|
||||
to_location: OrderLocation
|
||||
services: list[OrderService] = Field(min_length=1)
|
||||
packages: list[OrderPackage] = Field(min_length=1)
|
||||
|
||||
|
||||
class OrderCreateResponse(BaseModel):
|
||||
provider: str = Field(min_length=1)
|
||||
order_uuid: str = Field(min_length=1)
|
||||
Reference in New Issue
Block a user