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")