"""时光胶囊模型""" from datetime import datetime from sqlalchemy import String, Text, DateTime, Boolean, ForeignKey from sqlalchemy.orm import Mapped, mapped_column, relationship from app.database import Base class TimeCapsule(Base): __tablename__ = "time_capsules" id: Mapped[str] = mapped_column(String(36), primary_key=True) sender_id: Mapped[str] = mapped_column(String(36), ForeignKey("users.id", ondelete="CASCADE")) recipient_id: Mapped[str] = mapped_column(String(36), ForeignKey("users.id", ondelete="CASCADE")) title: Mapped[str] = mapped_column(String(100), nullable=False) content: Mapped[str] = mapped_column(Text, nullable=False) unlock_at: Mapped[datetime] = mapped_column(DateTime, nullable=False) mood: Mapped[str | None] = mapped_column(String(20), nullable=True) # 种子心情色 is_opened: Mapped[bool] = mapped_column(Boolean, default=False) created_at: Mapped[datetime] = mapped_column(DateTime, default=lambda: datetime.utcnow()) sender = relationship("User", foreign_keys=[sender_id]) recipient = relationship("User", foreign_keys=[recipient_id])