Ejemplo n.º 1
0
class Project(db.Model):
    __tablename__ = "project"

    id = db.Column("id", db.Integer(), primary_key=True)

    name = db.Column("name", db.String(32), nullable=False, unique=True)

    creator_user_id = db.Column(
        "creator_user_id", db.Integer(), db.ForeignKey("user.id"), nullable=False
    )

    api_key = db.Column("api_key", db.String(32), nullable=False, unique=True)

    created_at = db.Column(
        "created_at", db.DateTime(), nullable=False, default=db.func.now()
    )

    last_modified = db.Column(
        "last_modified",
        db.DateTime(),
        nullable=False,
        default=db.func.now(),
        onupdate=db.func.utc_timestamp(),
    )

    users = db.relationship(
        "User", secondary=user_project_table, back_populates="projects"
    )
    data = db.relationship("Data", backref="Project")
    labels = db.relationship("Label", backref="Project")
    creator_user = db.relationship("User")
Ejemplo n.º 2
0
class LabelValue(db.Model):
    __tablename__ = "label_value"

    id = db.Column("id", db.Integer(), primary_key=True)

    label_id = db.Column(
        "label_id", db.Integer(), db.ForeignKey("label.id"), nullable=False
    )

    value = db.Column("value", db.String(200), nullable=False)

    created_at = db.Column(
        "created_at", db.DateTime(), nullable=False, default=db.func.now()
    )

    last_modified = db.Column(
        "last_modified",
        db.DateTime(),
        nullable=False,
        default=db.func.now(),
        onupdate=db.func.utc_timestamp(),
    )

    __table_args__ = (
        db.UniqueConstraint("label_id", "value", name="_label_id_value_uc"),
    )

    label = db.relationship("Label", backref="LabelValue")
    segmentations = db.relationship(
        "Segmentation", secondary=annotation_table, back_populates="values"
    )

    def set_label_value(self, value):
        self.value = value
Ejemplo n.º 3
0
class Segmentation(db.Model):
    __tablename__ = "segmentation"

    id = db.Column("id", db.Integer(), primary_key=True)

    data_id = db.Column(
        "data_id", db.Integer(), db.ForeignKey("data.id"), nullable=False
    )

    start_time = db.Column("start_time", db.Float(), nullable=False)

    end_time = db.Column("end_time", db.Float(), nullable=False)

    transcription = db.Column("transcription", db.Text(), nullable=True)

    created_at = db.Column(
        "created_at", db.DateTime(), nullable=False, default=db.func.now()
    )

    last_modified = db.Column(
        "last_modified",
        db.DateTime(),
        nullable=False,
        default=db.func.now(),
        onupdate=db.func.utc_timestamp(),
    )

    values = db.relationship(
        "LabelValue", secondary=annotation_table, back_populates="segmentations",
    )

    def set_start_time(self, start_time):
        self.start_time = start_time

    def set_end_time(self, end_time):
        self.end_time = end_time

    def set_transcription(self, transcription):
        self.transcription = transcription

    def to_dict(self):
        return {
            "start_time": self.start_time,
            "end_time": self.end_time,
            "transcription": self.transcription,
            "created_at": self.created_at,
            "last_modified": self.last_modified,
        }
Ejemplo n.º 4
0
class UserSong(db.Model):
    __tablename__ = 'user_song'
    user_id = db.Column('user_id',
                        db.Integer(),
                        db.ForeignKey('user.id', ondelete='CASCADE'),
                        primary_key=True)
    song_id = db.Column('song_id',
                        db.Integer(),
                        db.ForeignKey('song.id', ondelete='RESTRICT'),
                        primary_key=True)

    time_played = db.Column('time_played', db.DateTime(), primary_key=True)

    user = db.relationship("User",
                           backref=db.backref('user_song', lazy='dynamic'))

    song = db.relationship("Song")

    def __init__(self, user, song, time_played):
        self.user = user
        self.song = song
        self.time_played = time_played

    def __repr__(self):
        return '<User %s Song %s>' % (self.user.username, self.song.spot_id)
Ejemplo n.º 5
0
class Role(db.Model):
    __tablename__ = "role"

    id = db.Column("id", db.Integer(), primary_key=True)

    role = db.Column("role", db.String(30), index=True, unique=True, nullable=False)

    created_at = db.Column(
        "created_at", db.DateTime(), nullable=False, default=db.func.now()
    )

    last_modified = db.Column(
        "last_modified",
        db.DateTime(),
        nullable=False,
        default=db.func.now(),
        onupdate=db.func.utc_timestamp(),
    )
Ejemplo n.º 6
0
class LabelType(db.Model):
    __tablename__ = "label_type"

    id = db.Column("id", db.Integer(), primary_key=True)

    type = db.Column("type", db.String(32), nullable=False, unique=True)

    created_at = db.Column(
        "created_at", db.DateTime(), nullable=False, default=db.func.now()
    )

    last_modified = db.Column(
        "last_modified",
        db.DateTime(),
        nullable=False,
        default=db.func.now(),
        onupdate=db.func.utc_timestamp(),
    )
Ejemplo n.º 7
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    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())
    roles = db.relationship('Role',
                            secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))
Ejemplo n.º 8
0
class User(db.Model):
    __tablename__ = "user"

    id = db.Column("id", db.Integer(), primary_key=True)

    username = db.Column("username",
                         db.String(128),
                         index=True,
                         unique=True,
                         nullable=False)

    password = db.Column("password", db.String(100), nullable=False)

    role_id = db.Column("role_id",
                        db.Integer(),
                        db.ForeignKey("role.id"),
                        nullable=False)

    created_at = db.Column("created_at",
                           db.DateTime(),
                           nullable=False,
                           default=db.func.now())

    last_modified = db.Column(
        "last_modified",
        db.DateTime(),
        nullable=False,
        default=db.func.now(),
        onupdate=db.func.utc_timestamp(),
    )

    role = db.relationship("Role")
    projects = db.relationship("Project",
                               secondary=user_project_table,
                               back_populates="users")

    def set_role(self, role_id):
        self.role_id = role_id

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

    def check_password(self, password):
        return check_password_hash(self.password, password)
Ejemplo n.º 9
0
class Label(db.Model):
    __tablename__ = "label"

    id = db.Column("id", db.Integer(), primary_key=True)

    name = db.Column("name", db.String(32), nullable=False)

    project_id = db.Column("project_id",
                           db.Integer(),
                           db.ForeignKey("project.id"),
                           nullable=False)

    type_id = db.Column("type_id",
                        db.Integer(),
                        db.ForeignKey("label_type.id"),
                        nullable=False)

    created_at = db.Column("created_at",
                           db.DateTime(),
                           nullable=False,
                           default=db.func.now())

    last_modified = db.Column(
        "last_modified",
        db.DateTime(),
        nullable=False,
        default=db.func.now(),
        onupdate=db.func.utc_timestamp(),
    )

    label_type = db.relationship("LabelType", backref="Label")
    label_values = db.relationship("LabelValue", backref="Label")

    __table_args__ = (db.UniqueConstraint("name",
                                          "project_id",
                                          name="_name_project_id_uc"), )

    def set_label_type(self, label_type_id):
        self.type_id = label_type_id
Ejemplo n.º 10
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(255))
    last_name = db.Column(db.String(255))
    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())
    roles = db.relationship('Role', secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

    def __str__(self):
        return "%s %s" % (self.first_name, self.last_name)
Ejemplo n.º 11
0
class User(db.Model, UserMixin):
    __tablename__ = "user"
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    first_name = db.Column(db.String(255))
    last_name = db.Column(db.String(255))
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean(), default=True)
    confirmed_at = db.Column(db.DateTime(), default=datetime.datetime.utcnow())
    roles = db.relationship('Role', secondary=roles_users,
                            backref=db.backref('user', lazy='dynamic'))

    def __str__(self):
        return "{}, {}".format(self.last_name, self.first_name)
Ejemplo n.º 12
0
class ResultsMetricsBase(db.Model):

    __tablename__ = 'ResultsMetrics'

    idResultsMetrics = db.Column(db.Integer, primary_key=True)
    oximetry = db.Column(db.String(45), nullable=True)
    heart = db.Column(db.String(45), nullable=True)
    temperature = db.Column(db.String(45), nullable=True)
    date_results = db.Column(db.DateTime(), nullable=True)
    User_idUser = db.Column(db.Integer, db.ForeignKey('User.idUser'))
    User_Devices_idDevices = db.Column(db.Integer, db.ForeignKey('User.Devices_idDevices'))
    User_UserSettings_idUserSettings = db.Column(db.Integer, db.ForeignKey('User.UserSettings.idUserSettings'))

    def __init__(self, *args, **kwargs):
        for (attr_name, value) in kwargs.items():
            setattr(self, attr_name, value)

    def __repr__(self):
        return "<ResultsMetrics%r>" % self.idResultsMetrics
class Message(db.Model):
    message_id = db.Column(db.Integer(), primary_key=True)
    content = db.Column(db.String(400), unique=False, nullable=False)
    sender_id = db.Column(db.String(120), unique=False, nullable=False)
    receiver_id = db.Column(db.String(120), unique=False, nullable=False)
    timestamp = db.Column(db.DateTime(timezone=True),
                          default=datetime.datetime.now())
    conversation_id = db.Column(db.Integer,
                                db.ForeignKey('conversation.conversation_id'))

    #attachments

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()

    @staticmethod
    def convert_to_datatime(time):
        return datetime.datetime.fromtimestamp(time / 1000.0)
Ejemplo n.º 14
0
class ResultsMetricsHasAlertsBase(db.Model):

    __tablename__ = 'ResultsMetrics_has_Alerts'

    ResultMetrics_idResultsMetrics = db.Column(db.Integer, db.ForeignKey('ResultsMetrics.idResultsMetrics'))
    ResultsMetrics_User_idUser = db.Column(db.Integer, db.ForeignKey('ResultsMetrics.User_idUSer'))
    ResultsMetrics_User_Devices_idDevices = db.Column(db.Integer,
                                                      db.ForeignKey('ResultsMetrics.User_Devices_idDevices'))

    ResultMetrics_User_UserSettings_idUserSettings = db.Column(
        db.Integer, db.ForeignKey('ResultsMetrics.User_UserSettings_idUserSettings'))

    Alerts_idAlerts = db.Column(db.Integer, db.ForeignKey('User.idUser'))
    sendAlert = db.Column(db.Integer, nullable=True)
    dateTimeLastSend = db.Column(db.DateTime(), nullable=True)

    def __init__(self, *args, **kwargs):
        for (attr_name, value) in kwargs.items():
            setattr(self, attr_name, value)

    def __repr__(self):
        return "<ResultsMetricsHasAlerts%r>" % self.idResultsMetrics
Ejemplo n.º 15
0
from backend import db

annotation_table = db.Table(
    "annotation",
    db.metadata,
    db.Column("id", db.Integer(), primary_key=True),
    db.Column(
        "segmentation_id",
        db.Integer(),
        db.ForeignKey("segmentation.id"),
        nullable=False,
    ),
    db.Column(
        "label_value_id", db.Integer(), db.ForeignKey("label_value.id"), nullable=False
    ),
    db.Column("created_at", db.DateTime(), nullable=False, default=db.func.now()),
    db.Column(
        "last_modified",
        db.DateTime(),
        nullable=False,
        default=db.func.now(),
        onupdate=db.func.utc_timestamp(),
    ),
)

user_project_table = db.Table(
    "user_project",
    db.metadata,
    db.Column("id", db.Integer(), primary_key=True),
    db.Column("user_id", db.Integer(), db.ForeignKey("user.id"), nullable=False),
    db.Column("project_id", db.Integer(), db.ForeignKey("project.id"), nullable=False),
Ejemplo n.º 16
0
class Data(db.Model):
    __tablename__ = "data"

    id = db.Column("id", db.Integer(), primary_key=True)

    project_id = db.Column(
        "project_id", db.Integer(), db.ForeignKey("project.id"), nullable=False
    )

    assigned_user_id = db.Column(
        "assigned_user_id", db.Integer(), db.ForeignKey("user.id"), nullable=False
    )

    filename = db.Column("filename", db.String(100), nullable=False, unique=True)

    original_filename = db.Column("original_filename", db.String(100), nullable=False)

    reference_transcription = db.Column(
        "reference_transcription", db.Text(), nullable=True
    )

    is_marked_for_review = db.Column(
        "is_marked_for_review", db.Boolean(), nullable=False, default=False
    )

    created_at = db.Column(
        "created_at", db.DateTime(), nullable=False, default=db.func.now()
    )

    last_modified = db.Column(
        "last_modified",
        db.DateTime(),
        nullable=False,
        default=db.func.now(),
        onupdate=db.func.utc_timestamp(),
    )

    project = db.relationship("Project")
    assigned_user = db.relationship("User")
    segmentations = db.relationship("Segmentation", backref="Data")

    def update_marked_review(self, marked_review):
        self.is_marked_for_review = marked_review

    def set_segmentations(self, segmentations):
        self.segmentations = segmentations

    def to_dict(self):
        return {
            "original_filename": self.original_filename,
            "filename": self.filename,
            "url": f"/audios/{self.filename}",
            "reference_transcription": self.reference_transcription,
            "is_marked_for_review": self.is_marked_for_review,
            "created_at": self.created_at,
            "last_modified": self.last_modified,
            "assigned_user": {
                "id": self.assigned_user_id,
                "username": self.assigned_user.username,
                "role": self.assigned_user.role.role,
            },
        }
Ejemplo n.º 17
0
annotation_table = db.Table(
    "annotation",
    db.metadata,
    db.Column("id", db.Integer(), primary_key=True),
    db.Column(
        "segmentation_id",
        db.Integer(),
        db.ForeignKey("segmentation.id"),
        nullable=False,
    ),
    db.Column("label_value_id",
              db.Integer(),
              db.ForeignKey("label_value.id"),
              nullable=False),
    db.Column("created_at",
              db.DateTime(),
              nullable=False,
              default=db.func.now()),
    db.Column(
        "last_modified",
        db.DateTime(),
        nullable=False,
        default=db.func.now(),
        onupdate=db.func.utc_timestamp(),
    ),
)

user_project_table = db.Table(
    "user_project",
    db.metadata,
    db.Column("id", db.Integer(), primary_key=True),