1010class WholesalePrice (NetworkModel ):
1111 """Wholesale unit price threshold."""
1212
13- from_items : int | float
14- price : float
13+ from_items : int | float | None = None
14+ price : float | None = None
1515
1616
1717class MetaData (NetworkModel ):
1818 """Additional product metadata."""
1919
20- name : str
21- alias : str
22- value : float | int | str
20+ name : str | None = None
21+ alias : str | None = None
22+ value : float | int | str | None = None
2323
2424
2525class Card (NetworkModel ):
2626 """Product card model from a source catalog."""
2727
28- sku : str
29- plu : str | None
30- source_page_url : str
28+ sku : str | None = None
29+ plu : str | None = None
30+ source_page_url : str | None = None
3131
32- title : str
33- description : str
32+ title : str | None = None
33+ description : str | None = None
3434
35- adult : bool
36- new : bool
37- promo : bool
38- season : bool
39- hit : bool
40- data_matrix : bool
35+ adult : bool | None = None
36+ new : bool | None = None
37+ promo : bool | None = None
38+ season : bool | None = None
39+ hit : bool | None = None
40+ data_matrix : bool | None = None
4141
42- brand : str
43- producer_name : str
44- producer_country : Literal ["BLR" , "RUS" , "USA" , "ARE" , "CHN" ]
42+ brand : str | None = None
43+ producer_name : str | None = None
44+ producer_country : Literal ["BLR" , "RUS" , "USA" , "ARE" , "CHN" ] | None = None
4545
46- composition : str
47- meta_data : list [MetaData ]
46+ composition : str | None = None
47+ meta_data : list [MetaData ] | None = Field ( default_factory = list )
4848
49- expiration_date_in_days : int
49+ expiration_date_in_days : int | None = None
5050
51- rating : float
52- reviews_count : int
51+ rating : float | None = None
52+ reviews_count : int | None = None
5353
54- price : float
55- discount_price : float | None
56- loyal_price : float | None
57- wholesale_price : list [WholesalePrice ]
58- price_unit : Literal ["BYN" , "RUB" , "USD" , "EUR" , "AED" ]
54+ price : float | None = None
55+ discount_price : float | None = None
56+ loyal_price : float | None = None
57+ wholesale_price : list [WholesalePrice ] | None = Field ( default_factory = list )
58+ price_unit : Literal ["BYN" , "RUB" , "USD" , "EUR" , "AED" ] | None = None
5959
6060 # Unit guide:
6161 # Chocolate 200 g:
@@ -66,15 +66,15 @@ class Card(NetworkModel):
6666 # unit="KGM", available_count=12.7, package_quantity=None, package_unit=None
6767 # Water vending:
6868 # unit="LTR", available_count=29.2, package_quantity=0.5, package_unit="LTR"
69- unit : Literal ["PCE" , "KGM" , "LTR" ]
70- available_count : int | float | None
71- package_quantity : float | None
72- package_unit : Literal ["KGM" , "LTR" ] | None
69+ unit : Literal ["PCE" , "KGM" , "LTR" ] | None = None
70+ available_count : int | float | None = None
71+ package_quantity : float | None = None
72+ package_unit : Literal ["KGM" , "LTR" ] | None = None
7373
74- categories_uid : list [str ]
74+ categories_uid : list [str ] | None = Field ( default_factory = list )
7575
76- main_image : str = Field (repr = False )
77- images : list [str ] = Field (default_factory = list , repr = False )
76+ main_image : str | None = Field (default = None , repr = False )
77+ images : list [str ] | None = Field (default_factory = list , repr = False )
7878
7979 @model_validator (mode = "after" )
8080 def validate_business_rules (self ) -> Card :
0 commit comments