class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) password = db.Column(db.String(60), nullable=False) def __repr__(self): return f"User('{self.username}', '{self.email}')"
class User(db.Model, UserMixin): """User database model""" id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=False) posts = db.relationship('Post', backref='author', lazy=True) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class Message(db.Model): id = db.Column(db.Integer, primary_key=True) text = db.Column(db.String(1024), nullable=False) def __init__(self, text, tags): self.text = text.strip() self.tags = [Tag(text=tag.strip()) for tag in tags.split(',')]
class Tag(db.Model): id = db.Column(db.Integer, primary_key=True) text = db.Column(db.String(32), nullable=False) message_id = db.Column(db.Integer, db.ForeignKey('message.id'), nullable=False) message = db.relationship('Message', backref=db.backref('tags', lazy=True))
class Team(db.Model): id = db.Column(db.Integer, primary_key=True) teamName = db.Column(db.String(20), unique=True, nullable=False) teamCaptain = db.Column(db.String(20), nullable=False) teamMember_1 = db.Column(db.String(20)) teamMember_2 = db.Column(db.String(20)) type = db.Column(db.String(8), nullable=False) themeM = db.Column(db.String(20), nullable=False) themeS = db.Column(db.String(20), nullable=False) themeE = db.Column(db.String(20), nullable=False) def __repr__(self): return f"User('{self.teamName}', '{self.type}')"
class Post(db.Model): """User post model""" id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) isbn = db.Column(db.String(100), nullable=False) book_price = db.Column(db.String(4), nullable=False) book_condition = db.Column(db.String(10), nullable=False) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) contact = db.Column(db.String(100), nullable=False) cover_photo = db.Column(db.String(20), nullable=False, default='default.jpg') user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"Post('{self.title}', '{self.isbn}', '{self.date_posted}', '{self.book_price}', '{self.book_condition}', '{self.contact}', '{self.cover_photo}', '{self.user_id}')"
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) login = db.Column(db.String(128), nullable=False, unique=True) password = db.Column(db.String(255), nullable=False)