melodix-api / app /models /forum.py
GitHub Action
deploy from github actions
f59bbd2
Raw
History Blame Contribute Delete
1.48 kB
from sqlalchemy import Column, Integer, String, ForeignKey, DateTime, Text, Boolean
from sqlalchemy.orm import relationship
from datetime import datetime
from app.database import Base
class ForumThread(Base):
"""Hilo / pregunta del foro comunitario."""
__tablename__ = "forum_threads"
id = Column(Integer, primary_key=True, index=True)
user_id = Column(Integer, ForeignKey("users.id"))
title = Column(String, nullable=False, index=True)
body = Column(Text, nullable=False)
is_deleted = Column(Boolean, default=False, index=True) # Soft-delete para moderación futura
created_at = Column(DateTime, default=datetime.utcnow, index=True)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
user = relationship("User")
replies = relationship("ForumReply", back_populates="thread", cascade="all, delete-orphan")
class ForumReply(Base):
"""Respuesta a un hilo del foro."""
__tablename__ = "forum_replies"
id = Column(Integer, primary_key=True, index=True)
thread_id = Column(Integer, ForeignKey("forum_threads.id"), index=True)
user_id = Column(Integer, ForeignKey("users.id"))
body = Column(Text, nullable=False)
is_deleted = Column(Boolean, default=False, index=True) # Soft-delete para moderación futura
created_at = Column(DateTime, default=datetime.utcnow, index=True)
user = relationship("User")
thread = relationship("ForumThread", back_populates="replies")