class SharePost(db.Model): __tablename__ = 'share_post' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id')) post_id = db.Column(db.Integer, db.ForeignKey('posts.id')) posts = db.relationship('Post', backref=db.backref('sharepost', cascade="all, delete-orphan", lazy=True))
class CommentLike(db.Model): __tablename__ = 'comment_like' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id')) comment_id = db.Column(db.Integer, db.ForeignKey('comments.id')) posts = db.relationship('Comment', backref=db.backref('post', cascade="all, delete-orphan", lazy=True))
class Notify(db.Model): __tablename__ = 'notify' id = db.Column(db.Integer, primary_key=True) post_id = db.Column(db.Integer, db.ForeignKey('posts.id')) rec_id = db.Column(db.Integer, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('users.id')) date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) action = db.Column(db.String, nullable=False) content = db.Column(db.Text, nullable=False) posts = db.relationship('Post', backref=db.backref('notifypost', cascade="all, delete-orphan", lazy=True))
class Comment(db.Model): __tablename__ = "comments" id = db.Column(db.Integer, unique=True, primary_key=True) content = db.Column(db.Text, nullable=False) post_id = db.Column(db.Integer, db.ForeignKey('posts.id'), nullable=False) posts = db.relationship('Post', backref=db.backref('post', cascade="all, delete-orphan", lazy=True)) date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) edit = db.Column(db.Boolean, default=False) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) pic = db.Column(db.String(60), nullable=False, default=False) likes = db.relationship('CommentLike', backref='likepost', lazy='dynamic') def __repr__(self): return f"Comment('{self.post_id}', '{self.date}')"
class Post(db.Model): __tablename__ = "posts" id = db.Column(db.Integer, primary_key=True) content = db.Column(db.Text, nullable=False) title = db.Column(db.String(100), nullable=False) date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) edit = db.Column(db.Boolean, default=False) pic = db.Column(db.String(60), nullable=False) comments = db.relationship('Comment', backref='comment', lazy='dynamic') likes = db.relationship('PostLike', backref='likepost', lazy='dynamic') shares = db.relationship('SharePost', backref='sharepost', lazy='dynamic') def __repr__(self): return f"Post('{self.title}', '{self.date}')"
from Caravanitter import db, login_manager from datetime import datetime from flask_login import UserMixin followers = db.Table( 'followers', db.Column('follower_id', db.Integer, db.ForeignKey('users.id')), db.Column('followed_id', db.Integer, db.ForeignKey('users.id'))) @login_manager.user_loader def load_user(user_id): return User.query.get(int(user_id)) class User(db.Model, UserMixin): __tablename__ = "users" id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) password = db.Column(db.String, nullable=False) name = db.Column(db.String, nullable=False) email = db.Column(db.String, unique=True, nullable=False) card = db.Column(db.Text, default='Olá') dark_mode = db.Column(db.Boolean, default=False) pic = db.Column(db.String(60), nullable=False, default='perfil.png') posts = db.relationship('Post', backref='author', lazy=True) comments = db.relationship('Comment', backref='comment_author', lazy=True) liked = db.relationship('PostLike', foreign_keys='PostLike.user_id', backref='user',