summary refs log tree commit diff
path: root/models.py
diff options
context:
space:
mode:
authorMatt Arnold2025-04-09 18:18:37 -0400
committerMatt Arnold2025-04-09 18:18:37 -0400
commit4ac2861d28676bc886cf80b43a087f1f0044696a (patch)
tree48dd9e5e62860b137c4363f29d921646ff6f9889 /models.py
parentd1745a9c1e46d43af005ac966cf4170192b76f97 (diff)
Threaded blogging works
Diffstat (limited to 'models.py')
-rw-r--r--models.py39
1 files changed, 37 insertions, 2 deletions
diff --git a/models.py b/models.py
index 75af58b..26934d9 100644
--- a/models.py
+++ b/models.py
@@ -1,15 +1,50 @@
-from peewee import Model, CharField, TextField, DateTimeField, SqliteDatabase
+from peewee import Model, CharField, TextField, DateTimeField, SqliteDatabase, BlobField
+from peewee import IntegerField, ForeignKeyField
+from flask_login import UserMixin
+from werkzeug.security import check_password_hash, generate_password_hash
 from datetime import datetime
 from config import dbloc
+
 # from app import db
 db = SqliteDatabase(dbloc)
+
+
 class BaseModel(Model):
     class Meta:
         database = db
 
+
+class User(UserMixin, BaseModel):
+    id = IntegerField(primary_key=True)
+    username = CharField(max_length=64, index=True, unique=True)
+    default_faccet = TextField(null=False)
+    password_hash = CharField(max_length=128)
+
+    def set_password(self, password):
+        self.password_hash = generate_password_hash(password)
+
+    def check_password(self, password):
+        return check_password_hash(self.password_hash, password)
+
+
+class Faccet(BaseModel):
+    user_belongs = ForeignKeyField(User, backref="parts")
+    name = TextField(unique=True)
+    picture = BlobField()
+    bio = TextField()
+
+
 class Post(BaseModel):
+    id = IntegerField(primary_key=True)
+    authour = ForeignKeyField(Faccet, backref="creator")
+    parent = IntegerField(default=0)
     title = CharField()
     content = TextField()
     created_at = DateTimeField(default=datetime.now)
 
-db.create_tables([Post])
+
+def get_replies(post_id):
+    return Post.select().where(Post.parent == post_id).order_by(Post.created_at.desc())
+
+
+db.create_tables([User, Post, Faccet])