"""Phase 1 safety fields: paper mode + circuit breaker.""" from typing import Sequence, Union import sqlalchemy as sa from alembic import op revision: str = "008" down_revision: Union[str, None] = "007" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: with op.batch_alter_table("subscriptions") as batch_op: # Paper mode: trades are simulated, no Hyperliquid call. batch_op.add_column(sa.Column("paper_mode", sa.Boolean(), nullable=False, server_default="0")) # Circuit breaker state. batch_op.add_column(sa.Column("circuit_breaker_tripped_at", sa.DateTime(), nullable=True)) batch_op.add_column(sa.Column("circuit_breaker_reason", sa.String(32), nullable=True)) def downgrade() -> None: with op.batch_alter_table("subscriptions") as batch_op: batch_op.drop_column("circuit_breaker_reason") batch_op.drop_column("circuit_breaker_tripped_at") batch_op.drop_column("paper_mode")