"""Challenge SQLAlchemy model.""" from sqlalchemy import Column, Integer, String, Date, ForeignKey from sqlalchemy.orm import relationship from datetime import date from backend.database import Base class Challenge(Base): """Challenge model for tracking habits.""" __tablename__ = "challenges" id = Column(Integer, primary_key=True, index=True) name = Column(String, index=True) period_type = Column(String) # 'week', 'month', 'year' daily_target = Column(Integer) start_date = Column(Date) end_date = Column(Date) created_at = Column(Date, default=date.today) display_order = Column(Integer, default=0) user_id = Column(Integer, ForeignKey("users.id")) unit_type = Column(String, default="reps") # 'reps', 'minutes', 'pages', 'km' rest_days = Column(String, nullable=True) # comma-separated list of days icon = Column(String, default="fa-dumbbell") image_url = Column(String, nullable=True) description = Column(String, nullable=True) frequency_count = Column(Integer, nullable=True) selected_days = Column(String, nullable=True) owner = relationship("User", back_populates="challenges") trackings = relationship("Tracking", back_populates="challenge", cascade="all, delete-orphan")