-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodels.py
168 lines (138 loc) · 3.34 KB
/
models.py
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
from pydantic import BaseModel
from typing import Optional, List
from datetime import datetime
class Token(BaseModel):
access_token: str
token_type: str
class TokenData(BaseModel):
email: Optional[str] = None
is_admin: Optional[bool] = False
store_id: Optional[str] = None
class User(BaseModel):
email: str
name: str
picture: Optional[str] = None
is_admin: bool
class SysAdminUser(BaseModel):
email: str
name: str
phone_number: Optional[str] = None
class UserRegister(BaseModel):
name: str
email: str
password: str
class UserLogin(BaseModel):
email: str
password: str
class CusotmerCheck(BaseModel):
email: str
class ProductCreate(BaseModel):
title: str
description: Optional[str] = None
price: float
images: Optional[list[str]] = None
category: List[int]
properties: Optional[dict] = None
class ProductUpdate(BaseModel):
title: Optional[str] = None
description: Optional[str] = None
price: Optional[float] = None
images: Optional[list[str]] = None
category: Optional[List[int]] = None
properties: Optional[dict] = None
class CartItem(BaseModel):
title: str
price: float
quantity: int
class CartItems(BaseModel):
cart_items: List[CartItem]
class CheckoutOnline(BaseModel):
cart_items: dict
name: str
email: str
phone_number: str
city: str
postal_code: str
street_address: str
country: str
password: Optional[str] = None
class CheckoutOffline(BaseModel):
cart_items: dict
name: str
email: str
phone_number: str
# city: str
# postal_code: str
# street_address: str
# country: str
password: Optional[str] = None
class SubmitOrderOnline(BaseModel):
# line_items: List[CartItem]
cart_items: dict
name: str
email: str
phone_number: str
city: str
postal_code: str
street_address: str
country: str
# password: Optional[str] = None
class SubmitOrderOffline(BaseModel):
# line_items: List[CartItem]
cart_items: dict
name: str
email: str
phone_number: str
# city: str
# postal_code: str
# street_address: str
# country: str
# password: Optional[str] = None
class OrderCart(BaseModel):
cart_items: dict
class CategoryCreate(BaseModel):
name: str
parent: Optional[int] = None
properties: Optional[dict] = None
class StoreCreate(BaseModel):
storeName: str
storeDescription: Optional[str] = None
city: str
storeLocation: str
storeAdminName: str
storeAdminEmail: str
class EmployeeCreate(BaseModel):
email: str
name: str
address: str
class ProductIDs(BaseModel):
ids: List[int]
class ProductData(BaseModel):
name: str
class PriceData(BaseModel):
product_data: ProductData
class LineItem(BaseModel):
price_data: Optional[PriceData]
quantity: int
class Order(BaseModel):
_id: str
createdAt: datetime
paid: bool
name: str
email: str
city: str
postalCode: str
country: str
streetAddress: str
customer_id: str
store_id: str
delivery: bool
delivery_address_id: Optional[str]
order_otp: Optional[str]
status: str
total: int
line_items: List[LineItem]
class OrdersResponse(BaseModel):
orders: List[Order]
class SearchRequest(BaseModel):
title: str