diff --git a/backend/app/models/level.py b/backend/app/models/level.py index 239fa20..da39bf3 100644 --- a/backend/app/models/level.py +++ b/backend/app/models/level.py @@ -17,7 +17,7 @@ from sqlalchemy.orm import relationship from app.models.base import Base, BaseModel -class UserLevel(BaseModel): +class UserLevel(Base): """用户等级表""" __tablename__ = "user_levels" @@ -30,16 +30,14 @@ class UserLevel(BaseModel): max_login_streak = Column(Integer, nullable=False, default=0, comment="历史最长连续登录天数") last_login_date = Column(Date, nullable=True, comment="最后登录日期") last_checkin_at = Column(DateTime, nullable=True, comment="最后签到时间") + created_at = Column(DateTime, nullable=False, default=datetime.now) + updated_at = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now) # 关联 user = relationship("User", backref="user_level", uselist=False) - - # 不继承 is_deleted 等软删除字段 - is_deleted = None - deleted_at = None -class ExpHistory(BaseModel): +class ExpHistory(Base): """经验值历史表""" __tablename__ = "exp_history" @@ -51,16 +49,13 @@ class ExpHistory(BaseModel): description = Column(String(255), nullable=False, comment="描述") level_before = Column(Integer, nullable=True, comment="变化前等级") level_after = Column(Integer, nullable=True, comment="变化后等级") + created_at = Column(DateTime, nullable=False, default=datetime.now) # 关联 user = relationship("User", backref="exp_histories") - - # 不继承软删除字段 - is_deleted = None - deleted_at = None -class BadgeDefinition(BaseModel): +class BadgeDefinition(Base): """奖章定义表""" __tablename__ = "badge_definitions" @@ -76,16 +71,14 @@ class BadgeDefinition(BaseModel): exp_reward = Column(Integer, nullable=False, default=0, comment="奖励经验值") sort_order = Column(Integer, nullable=False, default=0, comment="排序") is_active = Column(Boolean, nullable=False, default=True, comment="是否启用") + created_at = Column(DateTime, nullable=False, default=datetime.now) + updated_at = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now) # 关联 user_badges = relationship("UserBadge", back_populates="badge") - - # 不继承软删除字段 - is_deleted = None - deleted_at = None -class UserBadge(BaseModel): +class UserBadge(Base): """用户奖章表""" __tablename__ = "user_badges" @@ -95,14 +88,11 @@ class UserBadge(BaseModel): unlocked_at = Column(DateTime, nullable=False, default=datetime.now, comment="解锁时间") is_notified = Column(Boolean, nullable=False, default=False, comment="是否已通知") notified_at = Column(DateTime, nullable=True, comment="通知时间") + created_at = Column(DateTime, nullable=False, default=datetime.now) # 关联 user = relationship("User", backref="badges") badge = relationship("BadgeDefinition", back_populates="user_badges") - - # 不继承软删除字段 - is_deleted = None - deleted_at = None class LevelConfig(Base):