"""add_extended_fit_metrics Revision ID: 09c17c0f0e9e Revises: b43006af329e Create Date: 2026-01-12 07:34:07.760775 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision: str = '09c17c0f0e9e' down_revision: Union[str, None] = 'b43006af329e' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### op.add_column('activities', sa.Column('total_work', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('intensity_factor', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('threshold_power', sa.Integer(), nullable=True)) op.add_column('activities', sa.Column('avg_left_pedal_smoothness', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('avg_right_pedal_smoothness', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('avg_left_torque_effectiveness', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('avg_right_torque_effectiveness', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('grit', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('flow', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('avg_respiration_rate', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('max_respiration_rate', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('avg_stress', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('avg_spo2', sa.Float(), nullable=True)) op.add_column('activities', sa.Column('total_strokes', sa.Integer(), nullable=True)) op.add_column('activities', sa.Column('avg_stroke_distance', sa.Float(), nullable=True)) # ### end Alembic commands ### def downgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### op.drop_column('activities', 'avg_stroke_distance') op.drop_column('activities', 'total_strokes') op.drop_column('activities', 'avg_spo2') op.drop_column('activities', 'avg_stress') op.drop_column('activities', 'max_respiration_rate') op.drop_column('activities', 'avg_respiration_rate') op.drop_column('activities', 'flow') op.drop_column('activities', 'grit') op.drop_column('activities', 'avg_right_torque_effectiveness') op.drop_column('activities', 'avg_left_torque_effectiveness') op.drop_column('activities', 'avg_right_pedal_smoothness') op.drop_column('activities', 'avg_left_pedal_smoothness') op.drop_column('activities', 'threshold_power') op.drop_column('activities', 'intensity_factor') op.drop_column('activities', 'total_work') # ### end Alembic commands ###