galaxis-po/backend/alembic/versions/a1b2c3d4e5f6_add_signal_execution_fields.py
zephyrdark eb06dfc48b
All checks were successful
Deploy to Production / deploy (push) Successful in 1m32s
feat: implement scenario gap analysis - core loop completion
Phase 1 (Critical):
- Add bulk rebalance apply API + UI with confirmation modal
- Add strategy results to portfolio targets flow (shared component)

Phase 2 (Important):
- Show current holdings in signal execute modal with auto-fill
- Add DC pension risk asset ratio warning (70% limit)
- Add KOSPI benchmark comparison to portfolio returns
- Track signal execution details (price, quantity, timestamp)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 18:18:15 +09:00

31 lines
924 B
Python

"""add signal execution tracking fields
Revision ID: a1b2c3d4e5f6
Revises: 6c09aa4368e5
Create Date: 2026-02-19 14:00:00.000000
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = 'a1b2c3d4e5f6'
down_revision: Union[str, None] = '6c09aa4368e5'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.add_column('signals', sa.Column('executed_price', sa.Numeric(precision=12, scale=2), nullable=True))
op.add_column('signals', sa.Column('executed_quantity', sa.Integer(), nullable=True))
op.add_column('signals', sa.Column('executed_at', sa.DateTime(), nullable=True))
def downgrade() -> None:
op.drop_column('signals', 'executed_at')
op.drop_column('signals', 'executed_quantity')
op.drop_column('signals', 'executed_price')