"""add entity_stakes (a holder entity's stake in the funds it manages) Revision ID: b8c9d0e1f2a3 Revises: a7b8c9d0e1f2 Create Date: 2026-07-01 10:15:00.000000 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa revision: str = 'b8c9d0e1f2a3' down_revision: Union[str, None] = 'a7b8c9d0e1f2' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.create_table( 'entity_stakes', sa.Column('id', sa.Integer(), primary_key=True, nullable=False), sa.Column('holder_entity_id', sa.Integer(), nullable=False), sa.Column('fund_entity_id', sa.Integer(), nullable=False), sa.Column('ownership_pct', sa.Float(), nullable=True), sa.Column('value_cents', sa.Integer(), nullable=True), sa.Column('note', sa.String(), nullable=True), sa.Column('created_at', sa.DateTime(), nullable=False), sa.ForeignKeyConstraint(['holder_entity_id'], ['entities.id']), sa.ForeignKeyConstraint(['fund_entity_id'], ['entities.id']), sa.UniqueConstraint('holder_entity_id', 'fund_entity_id', name='uq_stake_holder_fund'), ) op.create_index('ix_entity_stakes_holder_entity_id', 'entity_stakes', ['holder_entity_id']) op.create_index('ix_entity_stakes_fund_entity_id', 'entity_stakes', ['fund_entity_id']) def downgrade() -> None: op.drop_index('ix_entity_stakes_fund_entity_id', table_name='entity_stakes') op.drop_index('ix_entity_stakes_holder_entity_id', table_name='entity_stakes') op.drop_table('entity_stakes')