from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy.sql import func from app.database import Base class Joke(Base): """笑话表模型""" __tablename__ = "jokes" id = Column(Integer, primary_key=True, autoincrement=True) title = Column(String(200), nullable=False) content = Column(Text, nullable=False) polished_content = Column(Text, nullable=True) type_ids = Column(Text, nullable=True) crowd_ids = Column(Text, nullable=True) type_id = Column(Integer, ForeignKey("joke_types.id"), nullable=True) crowd_id = Column(Integer, ForeignKey("joke_crowds.id"), nullable=True) status = Column(String(20), default="pending") view_count = Column(Integer, default=0) like_count = Column(Integer, default=0) created_at = Column(DateTime, default=func.now()) updated_at = Column(DateTime, default=func.now(), onupdate=func.now()) # Relationships type = relationship("JokeType", back_populates="jokes") crowd = relationship("JokeCrowd", back_populates="jokes")