diff options
Diffstat (limited to 'app/models.py')
-rw-r--r-- | app/models.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py new file mode 100644 index 0000000..4df6689 --- /dev/null +++ b/app/models.py @@ -0,0 +1,33 @@ +from app import db +import datetime + +class User(db.Model): + id = db.Column(db.Integer, primary_key=True) + nickname = db.Column(db.String(64), index=True, unique=True) + email = db.Column(db.String(120), index=True, unique=True) + opened = db.relationship('Ticket', backref='opened_by', lazy='dynamic', primaryjoin = 'Ticket.opened_by_user_id == User.id') + assigned = db.relationship('Ticket', backref='assigned_to', lazy='dynamic', primaryjoin = 'Ticket.assigned_to_user_id == User.id') + + + def __repr__(self): + return '<User %r>' % (self.nickname) + +class Ticket(db.Model): + id = db.Column(db.Integer, primary_key=True) + + summary = db.Column(db.String(140), nullable=False) + body = db.Column(db.Text, nullable=False) + + opened_at = db.Column(db.DateTime, nullable=False) + updated_at = db.Column(db.DateTime) + + status = db.Column(db.String(64), nullable=False, default='open') + resolution = db.Column(db.String(64)) + reason = db.Column(db.String(140)) + deleted = db.Column(db.Boolean, default=False) + + opened_by_user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) + assigned_to_user_id = db.Column(db.Integer, db.ForeignKey('user.id')) + + def __repr__(self): + return '<Ticket %r>' % (self.id) |