"""Add target_asset / category / expected_move_pct to posts (v5 routing) Revision ID: 006 Revises: 005 Create Date: 2026-05-08 00:00:00.000000 The v5 AI prompt outputs not just signal direction but also which specific perp to trade (could be BTC/ETH/SOL/TRUMP/anything on Hyperliquid). The bot reads `target_asset` to route the trade. `price_impact_asset` stays bound to BTC/ETH for the existing price_impact_monitor. """ from typing import Sequence, Union import sqlalchemy as sa from alembic import op revision: str = "006" down_revision: Union[str, None] = "005" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: with op.batch_alter_table("posts") as batch_op: batch_op.add_column(sa.Column("target_asset", sa.String(16), nullable=True)) batch_op.add_column(sa.Column("category", sa.String(24), nullable=True)) batch_op.add_column(sa.Column("expected_move_pct", sa.Float(), nullable=True)) def downgrade() -> None: with op.batch_alter_table("posts") as batch_op: batch_op.drop_column("expected_move_pct") batch_op.drop_column("category") batch_op.drop_column("target_asset")