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 "" % 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 "" % 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 "" % (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 "" % self.id