"""add organization member support Revision ID: b61b6b2d83cc Revises: 0f79356844b5 Create Date: 2025-12-04 12:03:16.548989 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision: str = 'b61b6b2d83cc' down_revision: Union[str, Sequence[str], None] = '0f79356844b5' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: """Upgrade schema.""" # Add member_type column with default 'INDIVIDUAL' op.add_column( 'members', sa.Column('member_type', sa.String(length=20), nullable=False, server_default='INDIVIDUAL') ) # Add company_name column (nullable) op.add_column( 'members', sa.Column('company_name', sa.String(length=200), nullable=True) ) # Alter first_name to be nullable (SQLite compatible using batch operations) with op.batch_alter_table('members', schema=None) as batch_op: batch_op.alter_column( 'first_name', existing_type=sa.String(length=100), nullable=True ) def downgrade() -> None: """Downgrade schema.""" # Remove company_name and member_type columns op.drop_column('members', 'company_name') op.drop_column('members', 'member_type') # Revert first_name to nullable=False # Note: This may fail if there are organization members without first_name with op.batch_alter_table('members', schema=None) as batch_op: batch_op.alter_column( 'first_name', existing_type=sa.String(length=100), nullable=False )