class IndicatorValue(db.Model): __tablename__ = 'indicatorvalue' timestamp = db.Column(db.DateTime(), nullable=False) value = db.Column(db.Numeric(), nullable=False) indicator_id = db.Column(db.Integer(), db.ForeignKey('indicator.id', ondelete='CASCADE'), nullable=False, index=True) __table_args__ = (db.PrimaryKeyConstraint( 'timestamp', 'indicator_id', name='indicatorvalue_timestamp_indicator_id_pkey'), ) def as_dict(self): return { 'timestamp': self.timestamp, 'value': self.value, 'indicator_id': self.indicator_id } def update_dict(self): return {'value': self.value} def __repr__(self): return '<SLI value {} | {}: {}>'.format(self.indicator.name, self.timestamp, self.value)
from flask_sqlalchemy import SQLAlchemy from app.extensions import db file_path = os.path.join(os.path.dirname(__file__), 'static/files') term_category_relationship = db.Table('term_category_relationship', db.Column('term_id', db.Integer, db.ForeignKey('term.id'), nullable=False), db.Column('category_id', db.Integer, db.ForeignKey('category.id'), nullable=False), db.PrimaryKeyConstraint('term_id', 'category_id')) document_types_relationship = db.Table('document_types_table', db.Column('document_id', db.Integer, db.ForeignKey('document.id'), nullable=False), db.Column('document_type_id', db.Integer, db.ForeignKey('document_type.id'), nullable=False), db.PrimaryKeyConstraint('document_id', 'document_type_id')) term_column_relationship = db.Table('term_column_relationship', db.Column('term_id', db.Integer,
STAFF = 'STAFF' GUEST = 'GUEST' ANONYMOUS = 'ANONYMOUS' ''' Many to many relationship between roles and permissions ''' role_permission = db.Table( 'role_permission', db.Column('role_id', db.Integer, db.ForeignKey('role.id'), nullable=False), db.Column('permission_id', db.Integer, db.ForeignKey('permission.id'), nullable=False), db.PrimaryKeyConstraint('role_id', 'permission_id')) class Role(db.Model): ''' Database representation of a role ''' __tablename__ = 'role' _id = db.Column('id', db.Integer, primary_key=True) _name = db.Column('name', db.String(120), unique=True, nullable=False) _permissions = db.relationship('Permission', secondary=role_permission, backref='roles')
LIVE = "live" PAST = "past" DRAFT = "draft" # association table between users and events tables saved_events = db.Table( "saved_events", db.Column("user_id", db.Integer, db.ForeignKey("users.id"), nullable=False), db.Column("event_id", db.Integer, db.ForeignKey("events.id"), nullable=False), db.PrimaryKeyConstraint("user_id", "event_id"), ) class Event(AbstractModel): """Class to represent an event""" __tablename__ = "events" __searchable__ = [ "title", "description", "venue.state", "venue.city", "start_datetime", "end_datetime", "event_category_id",
email = db.Column(db.String(120), unique=True, nullable=False) email_confirmed = db.Column(db.Boolean, default=False) email_confirmed_on = db.Column(db.DateTime(timezone=True)) waitlist = db.relationship('Waitlist', uselist=False, back_populates='user') def __init__(self, email): self.email = email referrals = db.Table( 'referral', db.Column('referring', db.String(8), db.ForeignKey('waitlist.uuid')), db.Column('referred', db.String(8), db.ForeignKey('waitlist.uuid')), db.PrimaryKeyConstraint('referring', 'referred', name='referrals_pk')) class Waitlist(BaseModel, db.Model): __tablename__ = 'waitlist' initial_score = 65231 decrease_per_referral = 10 uuid = db.Column(db.String(8), primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) user = db.relationship('User', back_populates='waitlist') score = db.Column(db.Integer) referred = db.relationship('Waitlist', secondary=referrals, primaryjoin=(referrals.c.referring == uuid),