"""add_special_feature_bom

Revision ID: ef8ef6d858a0
Revises: 8229a029d950
Create Date: 2026-08-27 15:11:22.887467

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision: str = 'ef8ef6d858a0'
down_revision: Union[str, None] = '8229a029d950'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('special_feature_bom',
    sa.Column('id', sa.UUID(), nullable=False),
    sa.Column('option_id', sa.UUID(), nullable=False),
    sa.Column('rm_id', sa.UUID(), nullable=False),
    sa.Column('quantity', sa.Numeric(precision=14, scale=4), nullable=False),
    sa.Column('uom', sa.String(length=50), nullable=True),
    sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
    sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
    sa.ForeignKeyConstraint(['option_id'], ['special_feature_option_master.option_id'], ),
    sa.ForeignKeyConstraint(['rm_id'], ['rm_master.rm_id'], ),
    sa.PrimaryKeyConstraint('id'),
    sa.UniqueConstraint('option_id', 'rm_id', name='uq_feature_option_rm')
    )

    # ### end Alembic commands ###


def downgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###

    op.drop_table('special_feature_bom')
    # ### end Alembic commands ###
