-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
318 lines (307 loc) · 8.08 KB
/
Copy pathmodels.py
File metadata and controls
318 lines (307 loc) · 8.08 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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel, HttpUrl
# Define the schema
class Variant(BaseModel):
admin_graphql_api_id: str
barcode: Optional[str]
compare_at_price: Optional[str]
created_at: datetime
id: int
inventory_policy: str
position: int
price: str
product_id: int
sku: Optional[str]
taxable: bool
title: str
updated_at: datetime
option1: Optional[str]
option2: Optional[str]
option3: Optional[str]
image_id: Optional[int]
inventory_item_id: int
inventory_quantity: int
old_inventory_quantity: int
class Option(BaseModel):
name: str
id: int
product_id: int
position: int
values: List[str]
class Image(BaseModel):
id: int
product_id: int
position: int
created_at: datetime
updated_at: datetime
alt: Optional[str]
width: int
height: int
src: HttpUrl
variant_ids: List[int]
admin_graphql_api_id: str
class PreviewImage(BaseModel):
width: int
height: int
src: HttpUrl
status: str
class Media(BaseModel):
id: int
product_id: int
position: int
created_at: datetime
updated_at: datetime
alt: Optional[str]
status: str
media_content_type: str
preview_image: PreviewImage
variant_ids: List[int]
admin_graphql_api_id: str
class VariantGID(BaseModel):
admin_graphql_api_id: str
updated_at: datetime
class Category(BaseModel):
admin_graphql_api_id: str
name: str
full_name: str
class ProductSchema(BaseModel):
admin_graphql_api_id: str
body_html: str
created_at: datetime
handle: str
id: int
product_type: Optional[str]
published_at: datetime
template_suffix: Optional[str]
title: str
updated_at: datetime
vendor: str
status: str
published_scope: str
tags: str
variants: List[Variant]
options: List[Option]
images: List[Image]
image: Image
media: List[Media]
variant_gids: List[VariantGID]
has_variants_that_requires_components: bool
category: Category
class ProductDeleteSchema(BaseModel):
id: int
class ClientDetails(BaseModel):
accept_language: Optional[str]
browser_height: Optional[int]
browser_ip: Optional[str]
browser_width: Optional[int]
session_hash: Optional[str]
user_agent: Optional[str]
class Money(BaseModel):
amount: str
currency_code: str
class MoneySet(BaseModel):
shop_money: Money
presentment_money: Money
class DiscountCode(BaseModel):
code: str
amount: str
type: str
class Address(BaseModel):
first_name: Optional[str] = None
last_name: Optional[str] = None
company: Optional[str] = None
address1: Optional[str] = None
address2: Optional[str] = None
city: Optional[str] = None
province: Optional[str] = None
country: Optional[str] = None
zip: Optional[str] = None
phone: Optional[str] = None
name: Optional[str] = None
country_code: Optional[str] = None
province_code: Optional[str] = None
latitude: Optional[float] = None
longitude: Optional[float] = None
class CustomerAddress(Address):
id: int
customer_id: int
default: Optional[bool] = None
country_name: Optional[str] = None
class Customer(BaseModel):
id: int
email: str
created_at: datetime
updated_at: datetime
first_name: Optional[str]
last_name: Optional[str]
state: Optional[str]
note: Optional[str]
verified_email: bool
multipass_identifier: Optional[str]
tax_exempt: bool
phone: Optional[str]
currency: str
tax_exemptions: List[str]
admin_graphql_api_id: str
default_address: CustomerAddress
class DiscountApplication(BaseModel):
target_type: str
type: str
value: str
value_type: str
allocation_method: str
target_selection: str
title: str
description: Optional[str]
class TaxLine(BaseModel):
channel_liable: bool
price: str
price_set: MoneySet
rate: float
title: str
class DiscountAllocation(BaseModel):
amount: str
amount_set: MoneySet
discount_application_index: int
class LineItem(BaseModel):
id: int
admin_graphql_api_id: str
current_quantity: int
fulfillable_quantity: int
fulfillment_service: str
fulfillment_status: Optional[str]
gift_card: bool
grams: int
name: str
price: str
price_set: MoneySet
product_exists: bool
product_id: int
properties: List[dict]
quantity: int
requires_shipping: bool
sales_line_item_group_id: Optional[str]
sku: Optional[str]
taxable: bool
title: str
total_discount: str
total_discount_set: MoneySet
variant_id: int
variant_inventory_management: Optional[str]
variant_title: Optional[str]
vendor: Optional[str]
tax_lines: List[TaxLine]
duties: List[dict]
discount_allocations: List[DiscountAllocation]
class ShippingLine(BaseModel):
id: int
carrier_identifier: Optional[str]
code: str
current_discounted_price_set: MoneySet
discounted_price: str
discounted_price_set: MoneySet
is_removed: bool
phone: Optional[str]
price: str
price_set: MoneySet
requested_fulfillment_service_id: Optional[int]
source: str
title: str
tax_lines: List[TaxLine]
discount_allocations: List[DiscountAllocation]
class OrderWebhook(BaseModel):
id: int
admin_graphql_api_id: str
app_id: int
browser_ip: str
buyer_accepts_marketing: bool
cancel_reason: Optional[str]
cancelled_at: Optional[datetime]
cart_token: Optional[str]
checkout_id: int
checkout_token: str
client_details: ClientDetails
closed_at: Optional[datetime]
company: Optional[str]
confirmation_number: str
confirmed: bool
contact_email: str
created_at: datetime
currency: str
current_shipping_price_set: MoneySet
current_subtotal_price: str
current_subtotal_price_set: MoneySet
current_total_additional_fees_set: Optional[MoneySet]
current_total_discounts: str
current_total_discounts_set: MoneySet
current_total_duties_set: Optional[MoneySet]
current_total_price: str
current_total_price_set: MoneySet
current_total_tax: str
current_total_tax_set: MoneySet
customer_locale: str
device_id: Optional[int]
discount_codes: List[DiscountCode]
duties_included: bool
email: str
estimated_taxes: bool
financial_status: str
fulfillment_status: Optional[str]
landing_site: Optional[str]
landing_site_ref: Optional[str]
location_id: Optional[int]
merchant_business_entity_id: Optional[str]
merchant_of_record_app_id: Optional[int]
name: str
note: Optional[str]
note_attributes: List[dict]
number: int
order_number: int
order_status_url: HttpUrl
original_total_additional_fees_set: Optional[MoneySet]
original_total_duties_set: Optional[MoneySet]
payment_gateway_names: List[str]
phone: Optional[str]
po_number: Optional[str]
presentment_currency: str
processed_at: datetime
reference: Optional[str]
referring_site: Optional[str]
source_identifier: Optional[str]
source_name: str
source_url: Optional[HttpUrl]
subtotal_price: str
subtotal_price_set: MoneySet
tags: str
tax_exempt: bool
tax_lines: List[TaxLine]
taxes_included: bool
test: bool
token: str
total_cash_rounding_payment_adjustment_set: MoneySet
total_cash_rounding_refund_adjustment_set: MoneySet
total_discounts: str
total_discounts_set: MoneySet
total_line_items_price: str
total_line_items_price_set: MoneySet
total_outstanding: str
total_price: str
total_price_set: MoneySet
total_shipping_price_set: MoneySet
total_tax: str
total_tax_set: MoneySet
total_tip_received: str
total_weight: int
updated_at: datetime
user_id: int
billing_address: Address
customer: Customer
discount_applications: List[DiscountApplication]
fulfillments: List[dict]
line_items: List[LineItem]
payment_terms: Optional[dict]
refunds: List[dict]
shipping_address: Address
shipping_lines: List[ShippingLine]
returns: List[dict]