"""消息表情回应模型""" from datetime import datetime from sqlalchemy import String, DateTime, ForeignKey, UniqueConstraint from sqlalchemy.orm import Mapped, mapped_column, relationship from app.database import Base class MessageReaction(Base): __tablename__ = "message_reactions" __table_args__ = ( UniqueConstraint("message_id", "user_id", "emoji", name="uq_msg_reaction"), ) id: Mapped[str] = mapped_column(String(36), primary_key=True) message_id: Mapped[str] = mapped_column(String(36), ForeignKey("messages.id", ondelete="CASCADE")) user_id: Mapped[str] = mapped_column(String(36), ForeignKey("users.id", ondelete="CASCADE")) emoji: Mapped[str] = mapped_column(String(10), nullable=False) created_at: Mapped[datetime] = mapped_column(DateTime, default=lambda: datetime.utcnow()) message = relationship("Message") user = relationship("User", foreign_keys=[user_id])