aboutsummaryrefslogtreecommitdiff
path: root/app/models.py
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2019-03-18 14:10:12 +0000
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2019-03-18 14:10:12 +0000
commit2158c8e86ff4417973dd7ca650fab91e32c4e56a (patch)
treee26d9e43f712e6f140dc744287431e6e46c9b143 /app/models.py
downloadAnnotateChange-2158c8e86ff4417973dd7ca650fab91e32c4e56a.tar.gz
AnnotateChange-2158c8e86ff4417973dd7ca650fab91e32c4e56a.zip
initial commit
Diffstat (limited to 'app/models.py')
-rw-r--r--app/models.py59
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