diff options
| author | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2019-03-18 14:10:12 +0000 |
|---|---|---|
| committer | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2019-03-18 14:10:12 +0000 |
| commit | 2158c8e86ff4417973dd7ca650fab91e32c4e56a (patch) | |
| tree | e26d9e43f712e6f140dc744287431e6e46c9b143 /app/models.py | |
| download | AnnotateChange-2158c8e86ff4417973dd7ca650fab91e32c4e56a.tar.gz AnnotateChange-2158c8e86ff4417973dd7ca650fab91e32c4e56a.zip | |
initial commit
Diffstat (limited to 'app/models.py')
| -rw-r--r-- | app/models.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py new file mode 100644 index 0000000..9d11ffb --- /dev/null +++ b/app/models.py @@ -0,0 +1,59 @@ + +import datetime + + +from app import db + + +class User(db.Model): + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False) + email = db.Column(db.String(), unique=True, nullable=False) + password_hash = db.Column(db.String(128), nullable=False) + last_active = db.Column( + db.DateTime(), nullable=False, default=datetime.datetime.utcnow + ) + + def __repr__(self): + return "<User %r>" % self.username + + +class Dataset(db.Model): + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(), unique=True, nullable=False) + created = db.Column( + db.DateTime, nullable=False, default=datetime.datetime.utcnow + ) + md5sum = db.Column(db.String(32), unique=True, nullable=False) + + def __repr__(self): + return "<Dataset %r>" % self.name + + +class Task(db.Model): + id = db.Column(db.Integer, primary_key=True) + annotator_id = db.Column(db.Integer, nullable=False) + dataset_id = db.Column(db.Integer, nullable=False) + done = db.Column(db.Boolean, nullable=False, default=False) + annotated_on = db.Column(db.DateTime, nullable=True) + + user = db.relation("User") + annotator_id = db.Column(db.Integer, db.ForeignKey("user.id")) + + dataset = db.relation("Dataset") + dataset_id = db.Column(db.Integer, db.ForeignKey("dataset.id")) + + def __repr__(self): + return "<Task (%r, %r)>" % (self.annotator_id, self.dataset_id) + + +class Annotation(db.Model): + id = db.Column(db.Integer, primary_key=True) + time_start = db.Column(db.Integer) + time_end = db.Column(db.Integer) + + task = db.relation("Task") + task_id = db.Column(db.Integer, db.ForeignKey("task.id")) + + def __repr__(self): + return "<Annotation %r>" % self.id |
