class Reply(db.Model): id = db.Column(db.Integer, primary_key=True) content = db.Column(db.String(140)) timestamp = db.Column(db.Integer) post_id = db.Column(db.Integer, db.ForeignKey('post.id')) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) def __repr__(self): return '<Reply %r>' % (self.title)
class Message(db.Model): __tablename__ = 'message' id = db.Column(db.Integer, primary_key = True) body = db.Column(db.Text) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) thread_id = db.Column(db.Integer, db.ForeignKey('thread.id')) def __init__(self, body, user_id, thread_id): self.body = body self.user_id = user_id self.thread_id = thread_id
class Availability(db.Model): id = db.Column(db.Integer, primary_key=True) route_id = db.Column(db.Integer, db.ForeignKey('route.id'), nullable=False) bus_id = db.Column(db.Integer, db.ForeignKey('buses.id'), nullable=False) date = db.Column(db.Date, nullable=False) time = db.Column(db.String(60), nullable=False) amount = db.Column(db.Integer(), nullable=False) status = db.Column(db.String(60), nullable=False) #buses = db.relationship('Buses', backref='availability') def __repr__(self): return f"Availability('{self.bus_id}','{self.route_id}','{self.date}','{self.time}','{self.amount}','{self.status}')"
class Thread(db.Model): __tablename__ = 'thread' id = db.Column(db.Integer, primary_key = True) title = db.Column(db.String(100)) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) messages = db.relationship('Message', backref = 'thread') def __init__(self, title, user_id): self.title = title self.user_id = user_id
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(140)) body = db.Column(db.String(256)) timestamp = db.Column(db.Integer) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) replys = db.relationship('Reply', backref='author', lazy='dynamic') def __repr__(self): return '<Post %r>' % (self.title)
class Booking(db.Model): id = db.Column(db.Integer, primary_key=True) ticket_number = db.Column(db.String(60), nullable=False) customer_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) seat_id = db.Column(db.Integer, db.ForeignKey('seats.id'), nullable=False) bus_id = db.Column(db.Integer, db.ForeignKey('buses.id'), nullable=False) route_id = db.Column(db.Integer, db.ForeignKey('route.id'), nullable=False) phone = db.Column(db.Integer(), nullable=False) date_booked = db.Column(db.String(120), nullable=False, default=now.strftime('%Y-%m-%d')) email = db.Column(db.String(120), nullable=False) date = db.Column(db.DateTime, nullable=False) time = db.Column(db.String(60), nullable=False) def __repr__(self): return f"('{self.customer_id}','{self.phone}','{self.email}','{self.seat_id}',\
# return User.query.get(int(user_id)) class Controller(ModelView): def is_accessible(self): if current_user.has_role('admin'): return current_user.is_authenticated else: return abort(403) def not_authenticated(self): abort(403) roles_users = db.Table( 'roles_users', db.Column('user_id', db.Integer, db.ForeignKey('user.id')), db.Column('role_id', db.Integer, db.ForeignKey('role.id'))) class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(60), unique=True, nullable=False) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) phone = db.Column(db.Integer(), unique=True, nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=False) active = db.Column(db.Boolean) bookings = db.relationship('Booking', backref='customer')