示例#1
0
class Buffer(db.Model):
    __tablename__= 'buffer'

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, index=True, nullable=False)
    event_tag = db.Column(db.String(2000), unique=True,
            index=True, nullable=False)     
    duration = db.Column(db.Integer) 
示例#2
0
class Tag(db.Model):
    __tablename__ = 'tag'

    id = db.Column(db.Integer, primary_key=True)
    tag_name = db.Column(db.String(200), index=True, unique=True,    
                 nullable=False)

    # Many-to-many for events-tags, defines a Event.tags attribute
    tags = db.relationship('Event', secondary=event_as, 
            backref='tags', lazy='dynamic')
示例#3
0
class Event(db.Model):
    __tablename__ = 'event'

    id = db.Column(db.Integer, primary_key=True)
    duration = db.Column(db.Integer) 
    rating_date = db.Column(db.DateTime, index=True, nullable=False) 
    story = db.Column(db.String(2000), nullable=False, index=True)

    # Many-to-many for rating-events, defines an Rating.events attribute
    rating_events = db.relationship('Rating', secondary=rating_as,
                    backref='events', lazy='dynamic')
示例#4
0
class User(db.Model, UserMixin):
    __tablename__ = 'user'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), index=True, unique=True, nullable=False)
    email = db.Column(db.String(120) ,index=True, unique=True, nullable=False)
    password_hash = db.Column(db.String(128), nullable=False)
    
    # Establish Rating objects on User called User.ratings.
    # Establish a .user attribute on Rating which referes to the parent User object
    ratings = db.relationship('Rating', backref='user', lazy='dynamic')

    def __repr__(self):
        return '{},{}'.format(self.id, self.username)

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)
示例#5
0
class Rating(db.Model):
    __tablename__ = 'rating'

    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.DateTime, unique=False, nullable=False) 
    rating_sleep = db.Column(db.Integer, index=True, nullable=False)
    meditation = db.Column(db.Integer, nullable=False) 
    cw = db.Column(db.Integer, nullable=False) 
    screen = db.Column(db.Integer, nullable=False) 
    rating_day = db.Column(db.Integer, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'),
                index=True, nullable=False)

    __table_args__ = (
       db.UniqueConstraint('date', 'user_id', name='date_userid'),
    )
示例#6
0
    date = db.Column(db.DateTime, unique=False, nullable=False) 
    rating_sleep = db.Column(db.Integer, index=True, nullable=False)
    meditation = db.Column(db.Integer, nullable=False) 
    cw = db.Column(db.Integer, nullable=False) 
    screen = db.Column(db.Integer, nullable=False) 
    rating_day = db.Column(db.Integer, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'),
                index=True, nullable=False)

    __table_args__ = (
       db.UniqueConstraint('date', 'user_id', name='date_userid'),
    )

# Many-to-many association table for Rating-Event
rating_as = db.Table('rating_events',
        db.Column('rating_id', db.Integer, db.ForeignKey('rating.id')),
        db.Column('event.id', db.Integer, db.ForeignKey('event.id'))
        )

    
# Define events table, by design will have 
# multiple date entries due to multiple unique tags.
# Potential Improvements:
class Event(db.Model):
    __tablename__ = 'event'

    id = db.Column(db.Integer, primary_key=True)
    duration = db.Column(db.Integer) 
    rating_date = db.Column(db.DateTime, index=True, nullable=False) 
    story = db.Column(db.String(2000), nullable=False, index=True)