from sqlalchemy import Column, Integer, String, Float, DateTime, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy.sql import func from ..models import Base class SegmentEffort(Base): __tablename__ = "segment_efforts" id = Column(Integer, primary_key=True, index=True) segment_id = Column(Integer, ForeignKey("segments.id"), nullable=False) activity_id = Column(Integer, ForeignKey("activities.id"), nullable=False) elapsed_time = Column(Integer, nullable=False) # seconds start_time = Column(DateTime, nullable=False) # Absolute start time of the effort end_time = Column(DateTime, nullable=False) avg_power = Column(Integer, nullable=True) max_power = Column(Integer, nullable=True) avg_hr = Column(Integer, nullable=True) avg_speed = Column(Float, nullable=True) # m/s avg_cadence = Column(Integer, nullable=True) # rpm avg_respiration_rate = Column(Float, nullable=True) # breaths/min # Potential for ranking (1 = KOM/PR, etc.) - calculated dynamically or stored kom_rank = Column(Integer, nullable=True) created_at = Column(DateTime(timezone=True), server_default=func.now()) segment = relationship("Segment") activity = relationship("Activity")