예제 #1
0
파일: models.py 프로젝트: patenode/syllin
class SongLink(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    song_id = db.Column(db.Integer(), db.ForeignKey('song.id'), nullable=False)
    song = db.relationship("Song")
     
    referrer_id = db.Column(db.Integer(), db.ForeignKey('user.id'), nullable=False)
    referrer = db.relationship("User")

    key = db.Column(db.Text(), index=True, unique=True, nullable=False) # this is the random link that we use for referral
예제 #2
0
파일: models.py 프로젝트: patenode/syllin
class Song(db.Model):
    __tablename__ = 'song'
    id = db.Column(db.Integer, primary_key=True)
    album_id = db.Column(db.Integer(), db.ForeignKey("album.id"))
    album = db.relationship("Album", back_populates="songs")
    resource_uri = db.Column(db.Text())
    title = db.Column(db.Text())
    artist_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    artist = db.relationship("User", backref=db.backref('songs', lazy='dynamic'))

    def __repr__(self):
        return "{} : {}".format(self.id, self.title)
예제 #3
0
파일: models.py 프로젝트: patenode/syllin
class Recommendation(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    buyer_id = db.Column(db.Integer(), db.ForeignKey('user.id'),  nullable=False)
    buyer = db.relationship("User", foreign_keys=[buyer_id],backref=db.backref('recommended_to', lazy='dynamic'))

    seller_id = db.Column(db.Integer(), db.ForeignKey('user.id'))
    seller = db.relationship("User", foreign_keys=[seller_id], backref=db.backref('recommended_by', lazy='dynamic'))

    song_id = db.Column(db.Integer(), db.ForeignKey('song.id'), nullable=False)
    song = db.relationship("Song", foreign_keys=[song_id], backref=db.backref('recommendations', lazy='dynamic'))

    __table_args__ = (
        db.UniqueConstraint('buyer_id', 'song_id', name='_song_buyer_recommendation_uc'),
        )

    def __init__(self, buyer=None, seller=None, song=None):
        self.seller = seller
        self.buyer = buyer
        self.song = song

    def __repr__(self):
        return "Recommend {}".format(self.song.title)
예제 #4
0
파일: models.py 프로젝트: patenode/syllin
class Role(db.Model, RoleMixin):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))
예제 #5
0
파일: models.py 프로젝트: patenode/syllin
from flask_security import Security, SQLAlchemyUserDatastore, UserMixin, RoleMixin, login_required

from syllin.db_model import db

roles_users = db.Table('roles_users',
                       db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
                       db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))


class Role(db.Model, RoleMixin):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))


class User(db.Model, UserMixin):
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text())
    profile_pic = db.Column(db.Text()) # s3 url
    bio = db.Column(db.Text())
    favorite_artists = db.Column(db.Text())
    registered_artist = db.Column(db.Boolean)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime()) # Used for (Member Since)
    roles = db.relationship('Role', secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

    def __repr__(self):