1.8
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
"""用户每日签到/连续天数模型"""
|
||||
|
||||
from datetime import date, datetime
|
||||
|
||||
from sqlalchemy import String, Integer, Date, DateTime, ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
|
||||
from app.database import Base
|
||||
|
||||
|
||||
class UserStreak(Base):
|
||||
__tablename__ = "user_streaks"
|
||||
|
||||
user_id: Mapped[str] = mapped_column(String(36), ForeignKey("users.id", ondelete="CASCADE"), primary_key=True)
|
||||
streak: Mapped[int] = mapped_column(Integer, default=0) # 连续打开天数
|
||||
last_open_date: Mapped[date | None] = mapped_column(Date, nullable=True)
|
||||
total_days: Mapped[int] = mapped_column(Integer, default=0) # 累计打开天数
|
||||
updated_at: Mapped[datetime] = mapped_column(
|
||||
DateTime, default=lambda: datetime.utcnow(), onupdate=lambda: datetime.utcnow()
|
||||
)
|
||||
|
||||
user = relationship("User", foreign_keys=[user_id])
|
||||
Reference in New Issue
Block a user