-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
33 lines (26 loc) · 1.07 KB
/
models.py
File metadata and controls
33 lines (26 loc) · 1.07 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
from datetime import datetime
from app import db
from flask_dance.consumer.storage.sqla import OAuthConsumerMixin
from flask_login import UserMixin
from sqlalchemy import UniqueConstraint
class User(UserMixin, db.Model):
__tablename__ = 'users'
id = db.Column(db.String, primary_key=True)
email = db.Column(db.String, unique=True, nullable=True)
first_name = db.Column(db.String, nullable=True)
last_name = db.Column(db.String, nullable=True)
profile_image_url = db.Column(db.String, nullable=True)
created_at = db.Column(db.DateTime, default=datetime.now)
updated_at = db.Column(db.DateTime,
default=datetime.now,
onupdate=datetime.now)
class OAuth(OAuthConsumerMixin, db.Model):
user_id = db.Column(db.String, db.ForeignKey(User.id))
browser_session_key = db.Column(db.String, nullable=False)
user = db.relationship(User)
__table_args__ = (UniqueConstraint(
'user_id',
'browser_session_key',
'provider',
name='uq_user_browser_session_key_provider',
),)