forked from Duff89/parser_avito
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
153 lines (127 loc) · 3.77 KB
/
models.py
File metadata and controls
153 lines (127 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
from pydantic import BaseModel, HttpUrl, RootModel
from typing import List, Optional, Dict, Any
class Category(BaseModel):
id: int
name: str
slug: str
rootId: int
compare: bool
pageRootId: int | None
class Location(BaseModel):
id: int
name: str
namePrepositional: str
isCurrent: bool
isRegion: bool
class AddressDetailed(BaseModel):
locationName: str
class PriceDetailed(BaseModel):
enabled: bool
fullString: str
hasValue: bool
postfix: str
string: str
stringWithoutDiscount: Optional[str]
title: Dict[str, str]
titleDative: str
value: int
wasLowered: bool
exponent: str
class Image(RootModel):
root: Dict[str, HttpUrl]
class Geo(BaseModel):
geoReferences: List[Any]
formattedAddress: str
class Contacts(BaseModel):
phone: bool
delivery: bool
message: bool
messageTitle: str
action: str
onModeration: bool
hasCVPackage: bool
hasEmployeeBalanceForCv: bool
serviceBooking: bool
class Gallery(BaseModel):
alt: str | None = None
cropImagesInfo: Optional[Any]
extraPhoto: Optional[Any]
hasLeadgenOverlay: bool
has_big_image: bool
imageAlt: str
imageLargeUrl: str
imageLargeVipUrl: str
imageUrl: str
imageVipUrl: str
image_large_urls: List[Any]
image_urls: List[Any]
images: List[Any]
imagesCount: int
isFirstImageHighImportance: bool
isLazy: bool
noPhoto: bool
showSlider: bool
wideSnippetUrls: List[Any]
class UserLogo(BaseModel):
link: str | None = None
src: HttpUrl | str | None = None
developerId: Optional[int]
class IvaComponent(BaseModel):
component: str
payload: Optional[Dict[str, Any]] = None
class IvaStep(BaseModel):
componentData: IvaComponent
payload: Optional[Dict[str, Any]] = None
default: bool
class Item(BaseModel):
id: int | dict | None = None
categoryId: int | dict | None = None
locationId: int | dict | None = None
isVerifiedItem: bool | None = None
urlPath: str | None = None
title: str | None = None
description: str | None = None
category: Category | None = None
location: Location | None = None
addressDetailed: AddressDetailed | None = None
sortTimeStamp: int | None = None
turnOffDate: bool | None = None
priceDetailed: PriceDetailed | None = None
normalizedPrice: Optional[str] | None = None
priceWithoutDiscount: Optional[str] | None = None
discountPercent: Optional[int] | Optional[str] | None = None
lastMinuteOffer: Optional[str] | Optional[dict] | None = None
images: List[Image] | None = None
imagesCount: int | None = None
isFavorite: bool | None = None
isNew: bool | None = None
geo: Geo | None = None
phoneImage: Optional[str] | None = None
cvViewed: bool | None = None
isXl: bool | None = None
hasFooter: bool | None = None
contacts: Contacts | None = None
gallery: Gallery | None = None
loginLink: str | None = None
authLink: str | None = None
userLogo: UserLogo | None = None
isMarketplace: bool | None = None
iva: Dict[str, List[IvaStep]] | None = None
hasVideo: bool | None = None
hasRealtyLayout: bool | None = None
coords: Dict[str, Any] | None = None
groupData: Optional[Any] | None = None
isReMapPromotion: bool | None = None
isReserved: bool | None = None
type: str | None = None
ratingExperimentGroup: str | None = None
isRatingExperiment: bool | None = None
closedItemsText: str | None = None
closestAddressId: int | None = None
isSparePartsCompatibility: bool | None = None
sellerId: str | None = None
isPromotion: bool = False
total_views: int | None = None
today_views: int | None = None
class ItemsResponse(BaseModel):
items: List[Item]