Skip to content

Instantly share code, notes, and snippets.

@victor-shelepen
Created August 15, 2014 09:49
Show Gist options
  • Save victor-shelepen/17d53440eeef7f4147b2 to your computer and use it in GitHub Desktop.
Save victor-shelepen/17d53440eeef7f4147b2 to your computer and use it in GitHub Desktop.
class UserTable(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
password = db.Column(db.String)
user_friend = relationship('FriendTable', backref='user', foreign_keys='FriendTable.user_id')
friend_user = relationship('FriendTable', backref='friend', foreign_keys='FriendTable.friend_id')
def __init__(self, username, email, password):
self.username = username
self.email = email
self.password = password
def __repr__(self):
return '<User id=%d username=%s email=%s>' % (self.id, self.username, self.email)
class FriendTable(db.Model):
TYPES = [
(u'request', u'Request'),# When an user ask for a friendship. So he request a friendship.
(u'decision', u'Desicion'), # An user has received a request to get a friendship. He still desides.
(u'confirmed', u'Confirmed'), # An user confirms the request to get a frienship.
(u'accepted', u'Accepted'), # When an user's request is accepted.
]
__table_args__ = (
db.UniqueConstraint('user_id', 'friend_id', name='friendship'),
)
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey(UserTable.id), nullable=False)
friend_id = db.Column(db.Integer, db.ForeignKey(UserTable.id), nullable=False)
status = db.Column(db.String, nullable=False)
def __init__(self, user_id, friend_id, status):
self.user_id = user_id
self.friend_id = friend_id
self.status = status
def __repr__(self):
return '<Friend id=%d user_id=%d friend_id=%d status=%s>' % (self.id, self.user_id, self.friend_id, self.status)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment