From c96e88537de14bc17988d33cc25b77a52d7af6b4 Mon Sep 17 00:00:00 2001 From: HombreLaser Date: Mon, 5 Feb 2024 12:53:45 -0600 Subject: Add reply model --- src/database/models/__init__.py | 1 + src/database/models/comment.py | 5 ++++- src/database/models/reply.py | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/database/models/reply.py (limited to 'src') diff --git a/src/database/models/__init__.py b/src/database/models/__init__.py index 0647151..7a72ccf 100644 --- a/src/database/models/__init__.py +++ b/src/database/models/__init__.py @@ -1,2 +1,3 @@ from src.database.models.blog import Blog from src.database.models.comment import Comment +from src.database.models.reply import Reply diff --git a/src/database/models/comment.py b/src/database/models/comment.py index 9501bba..d1ca868 100644 --- a/src/database/models/comment.py +++ b/src/database/models/comment.py @@ -1,4 +1,4 @@ -from sqlalchemy import BigInteger, String, DateTime, Text, ForeignKey +from sqlalchemy import BigInteger, String, DateTime, Text, ForeignKey, Boolean from sqlalchemy.orm import mapped_column, Mapped, relationship from src.database import db @@ -13,6 +13,9 @@ class Comment(db.Model): author: Mapped[str] = mapped_column(String(128), nullable=True) post: Mapped[str] = mapped_column(String(1024), nullable=False) blog_id: Mapped[int] = mapped_column(ForeignKey('blogs.id'), index=True) + approved: Mapped[bool] = mapped_column(Boolean, nullable=False, + default=True) blog = relationship('Blog', back_populates='comments') + replies = relationship('Reply', back_populates='comment') created_at = mapped_column(DateTime) updated_at = mapped_column(DateTime) diff --git a/src/database/models/reply.py b/src/database/models/reply.py new file mode 100644 index 0000000..6324baf --- /dev/null +++ b/src/database/models/reply.py @@ -0,0 +1,19 @@ +from sqlalchemy import BigInteger, String, DateTime, Text, ForeignKey, Boolean +from sqlalchemy.orm import mapped_column, Mapped, relationship +from src.database import db + + +class Reply(db.Model): + __tablename__ = 'replies' + + id = mapped_column(BigInteger, primary_key=True) + content: Mapped[str] = mapped_column(Text) + email: Mapped[str] = mapped_column(String(256), nullable=True) + author: Mapped[str] = mapped_column(String(128), nullable=True) + comment_id: Mapped[int] = mapped_column(ForeignKey('comments.id'), + index=True) + approved: Mapped[bool] = mapped_column(Boolean, nullable=False, + default=True) + comment = relationship('Comment', back_populates='replies') + created_at = mapped_column(DateTime) + updated_at = mapped_column(DateTime) -- cgit v1.2.3