You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.4 KiB
47 lines
1.4 KiB
from flask_sqlalchemy import SQLAlchemy |
|
|
|
db = SQLAlchemy() |
|
|
|
class User(db.Model): |
|
id = db.Column(db.Integer, primary_key=True) |
|
name = db.Column(db.String(16)) |
|
token = db.Column(db.String(16), default=None) |
|
|
|
def __repr__(self): |
|
return f"{self.name}({self.token})" |
|
|
|
class Post(db.Model): |
|
id = db.Column(db.Integer, primary_key=True) |
|
name_hash = db.Column(db.String(64)) |
|
content = db.Column(db.String(4096)) |
|
post_type = db.Column(db.String(8)) |
|
cw = db.Column(db.String(32)) |
|
file_url = db.Column(db.String(256)) |
|
likenum = db.Column(db.Integer, default=0) |
|
timestamp = db.Column(db.Integer) |
|
deleted = db.Column(db.Boolean, default=False) |
|
|
|
comments = db.relationship('Comment', backref='post', lazy=True) |
|
|
|
def __repr__(self): |
|
return f"{self.name_hash}:[{self.content}]" |
|
|
|
class Comment(db.Model): |
|
id = db.Column(db.Integer, primary_key=True) |
|
name_hash = db.Column(db.String(64)) |
|
content = db.Column(db.String(4096)) |
|
timestamp = db.Column(db.Integer) |
|
deleted = db.Column(db.Boolean, default=False) |
|
|
|
post_id = db.Column(db.Integer, db.ForeignKey('post.id'), |
|
nullable=False) |
|
|
|
def __repr__(self): |
|
return f"{self.name_hash}:[{self.content}->{self.post_id}]" |
|
|
|
class Attention(db.Model): |
|
id = db.Column(db.Integer, primary_key=True) |
|
name_hash = db.Column(db.String(64)) |
|
pid = db.Column(db.Integer) |
|
disabled = db.Column(db.Boolean, default=False) |
|
|
|
|