from src.database import db from src.database.models import Comment, Reply from src.queries.base_query import BaseQuery class CommentsQuery(BaseQuery): def __init__(self): super().__init__(Comment) def all_comments(self): return db.paginate(db.select(Comment)) def comments_of_post(self, post, page=1): try: if page is not None and isinstance(page, str): page = int(page) except ValueError: page = 1 return db.paginate( db.select(Comment).where(Comment.post == post).order_by(Comment.created_at.desc()), page=page, max_per_page=5 ) def replies_of(self, comment_id): return db.paginate( db.select(Reply).where(Reply.comment_id == comment_id).order_by(Reply.created_at.desc()) )