-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
126 lines (115 loc) · 4.83 KB
/
models.py
File metadata and controls
126 lines (115 loc) · 4.83 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
from flask_sqlalchemy import SQLAlchemy
from flask_login import UserMixin
from werkzeug.security import generate_password_hash, check_password_hash
db = SQLAlchemy()
import datetime
class user(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
first_name = db.Column(db.String(80), nullable=False)
last_name = db.Column(db.String(80), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
phone_number = db.Column(db.String(120), unique=True, nullable=True)
password = db.Column(db.String(120), nullable=False)
login_counter = db.Column(db.Integer, nullable=False)
created = db.Column(db.DateTime, default=datetime.datetime.utcnow)
is_admin = db.Column(db.Boolean, nullable=False)
is_premium = db.Column(db.Boolean, nullable=False)
email_confirmed = db.Column(db.Boolean, nullable=False)
def toDict(self):
return {
"id": self.id,
"username": self.username,
"first_name": self.first_name,
"last_name": self.last_name,
"email": self.email,
"phone_number": self.phone_number,
"password": self.password,
"login_counter": self.login_counter,
'created': self.created.strftime("%m/%d/%Y, %H:%M:%S"),
"is_admin": self.is_admin,
"is_premium": self.is_premium,
"email_confirmed": self.email_confirmed
}
def set_password(self, password):
self.password = generate_password_hash(password, method='sha256')
def check_password(self, password):
return check_password_hash(self.password, password)
def __repr__(self):
return '<User {}>'.format(self.username)
class product(db.Model):
id = db.Column(db.Integer, primary_key=True)
price = db.Column(db.Integer, nullable=False)
name = db.Column(db.String(500), nullable=False)
monthly = db.Column(db.Boolean, nullable=False)
desc = db.Column(db.String(500), nullable=False)
catagory = db.Column(db.String(120), nullable=False)
sub_catagory = db.Column(db.String(120), nullable=True)
img_url = db.Column(db.String(120), nullable=False)
feature_1 = db.Column(db.String(500), nullable=True)
feature_2 = db.Column(db.String(500), nullable=True)
feature_3 = db.Column(db.String(500), nullable=True)
feature_4 = db.Column(db.String(500), nullable=True)
feature_5 = db.Column(db.String(500), nullable=True)
feature_6 = db.Column(db.String(500), nullable=True)
feature_7 = db.Column(db.String(500), nullable=True)
in_stock = db.Column(db.Boolean, nullable=False)
def toDict(self):
return {
"id": self.id,
"price": self.price,
"name": self.name,
"monthly":self.monthly,
"desc": self.desc,
"catagory": self.catagory,
"sub_catagory": self.sub_catagory,
"img_url": self.img_url,
"feature_1": self.feature_1,
"feature_2": self.feature_2,
"feature_3": self.feature_3,
"feature_4": self.feature_4,
"feature_5": self.feature_5,
"feature_6": self.feature_6,
"feature_7": self.feature_7,
"in_stock": self.in_stock
}
class orders(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
prod_id = db.Column(db.Integer, db.ForeignKey("product.id"))
is_completed = db.Column(db.Boolean, nullable=False)
AMT = db.Column(db.Float, nullable=False)
total_cost = db.Column(db.Float, nullable=False)
total_monthly = db.Column(db.Float, nullable=False)
total_downpayment = db.Column(db.Float, nullable=False)
monthly_due = db.Column(db.Boolean, nullable=False)
downpayment_due = db.Column(db.Boolean, nullable=False)
final_due = db.Column(db.Boolean, nullable=False)
created = db.Column(db.DateTime, default=datetime.datetime.utcnow)
desc = db.Column(db.String(120), nullable=True)
def toDict(self):
return {
"id": self.id,
"user_id": self.user_id,
"prod_id": self.prod_id,
"is_completed": self.is_completed,
"AMT": self.AMT,
"total_cost": self.total_cost,
"total_monthly": self.total_monthly,
"total_downpayment": self.total_downpayment,
"monthly_due": self.monthly_due,
"downpayment_due": self.downpayment_due,
"final_due": self.final_due,
'created': self.created.strftime("%m/%d/%Y, %H:%M:%S"),
"desc": self.desc
}
class wish_list(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
prod_id = db.Column(db.Integer, db.ForeignKey("product.id"))
def toDict(self):
return {
"id": self.id,
"user_id": self.user_id,
"prod_id": self.prod_id
}