88
99
1010class WholesalePrice (NetworkModel ):
11- """Цена за единицу при оптовом пороге ."""
11+ """Wholesale unit price threshold ."""
1212
1313 from_items : int | float
1414 price : float
1515
1616
1717class MetaData (NetworkModel ):
18- """Дополнительные метаданные товара ."""
18+ """Additional product metadata ."""
1919
2020 name : str
2121 alias : str
2222 value : float | int | str
2323
2424
2525class Card (NetworkModel ):
26- """Карточка товара из источника ."""
26+ """Product card model from a source catalog ."""
2727
2828 sku : str
2929 plu : str | None
@@ -57,14 +57,14 @@ class Card(NetworkModel):
5757 wholesale_price : list [WholesalePrice ]
5858 price_unit : Literal ["BYN" , "RUB" , "USD" , "EUR" , "AED" ]
5959
60- # Гайд на единицы :
61- # Шоколад 200г :
60+ # Unit guide :
61+ # Chocolate 200 g :
6262 # unit="PCE", available_count=15, package_quantity=0.2, package_unit="KGM"
63- # Молоко 1л :
63+ # Milk 1 L :
6464 # unit="PCE", available_count=10, package_quantity=1, package_unit="LTR"
65- # Картошка на развес :
65+ # Potatoes by weight :
6666 # unit="KGM", available_count=12.7, package_quantity=None, package_unit=None
67- # Водомат :
67+ # Water vending :
6868 # unit="LTR", available_count=29.2, package_quantity=0.5, package_unit="LTR"
6969 unit : Literal ["PCE" , "KGM" , "LTR" ]
7070 available_count : int | float | None
@@ -78,8 +78,14 @@ class Card(NetworkModel):
7878
7979 @model_validator (mode = "after" )
8080 def validate_business_rules (self ) -> Card :
81- if self .unit == "PCE" and self .available_count is not None and type (self .available_count ) is not int :
82- raise ValueError ("Для unit='PCE' поле available_count должно быть int." )
81+ is_piece_unit = self .unit == "PCE"
82+ has_count = self .available_count is not None
83+ count_is_int = type (self .available_count ) is int
84+
85+ if is_piece_unit and has_count and not count_is_int :
86+ raise ValueError ("For unit='PCE', available_count must be int." )
8387 if (self .package_quantity is None ) != (self .package_unit is None ):
84- raise ValueError ("package_quantity и package_unit должны быть заполнены вместе или оба быть None." )
88+ raise ValueError (
89+ "package_quantity and package_unit must be set together or both set to None."
90+ )
8591 return self
0 commit comments