新增点赞收藏功能:cloud_favorites 模型、查询/设置点赞状态及收藏列表接口

This commit is contained in:
2026-07-26 02:10:16 +08:00
parent b95400df2b
commit 49df3f067a
7 changed files with 531 additions and 2 deletions
+30
View File
@@ -236,3 +236,33 @@ class UserCollection(Base):
cloud_type: Mapped[CloudType] = relationship(lazy="raise")
first_cloud: Mapped[Cloud | None] = relationship(lazy="raise")
class CloudFavorite(Base):
"""用户对照片的点赞/收藏记录。"""
__tablename__ = "cloud_favorites"
__table_args__ = (
UniqueConstraint("user_id", "cloud_id", name="uq_cloud_favorites_user_cloud"),
Index("ix_cloud_favorites_user_id", "user_id"),
Index("ix_cloud_favorites_cloud_id", "cloud_id"),
Index(
"ix_cloud_favorites_user_created",
"user_id",
text("created_at DESC"),
text("id DESC"),
),
)
id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, default=uuid.uuid4)
user_id: Mapped[uuid.UUID] = mapped_column(
Uuid, ForeignKey("users.id", ondelete="CASCADE"), nullable=False
)
cloud_id: Mapped[uuid.UUID] = mapped_column(
Uuid, ForeignKey("clouds.id", ondelete="CASCADE"), nullable=False
)
created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), server_default=func.now(), nullable=False
)
cloud: Mapped[Cloud] = relationship(lazy="raise")