"""add_asset_lifecycle_fields_and_incoming_material_asset_fk

Revision ID: e10a3008c34f
Revises: f6a1b2c3d4e5
Create Date: 2026-09-07 14:10:19.425661

"""
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 = 'e10a3008c34f'
down_revision: Union[str, None] = 'f6a1b2c3d4e5'
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.add_column('maintenance_asset', sa.Column('purchase_date', sa.Date(), nullable=True))
    op.add_column('maintenance_asset', sa.Column('purchase_price', sa.Numeric(precision=14, scale=2), nullable=True))
    op.add_column('maintenance_asset', sa.Column('useful_life_years', sa.Integer(), nullable=True))
    op.add_column('maintenance_asset', sa.Column('salvage_value', sa.Numeric(precision=14, scale=2), nullable=True))
    
    op.add_column('maintenance_incoming_material', sa.Column('asset_id', sa.UUID(), nullable=True))
    op.create_index(op.f('ix_maintenance_incoming_material_asset_id'), 'maintenance_incoming_material', ['asset_id'], unique=False)
    op.create_foreign_key('fk_maintenance_incoming_material_asset_id', 'maintenance_incoming_material', 'maintenance_asset', ['asset_id'], ['id'], ondelete='SET NULL')
    # ### end Alembic commands ###


def downgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_constraint('fk_maintenance_incoming_material_asset_id', 'maintenance_incoming_material', type_='foreignkey')
    op.drop_index(op.f('ix_maintenance_incoming_material_asset_id'), table_name='maintenance_incoming_material')
    op.drop_column('maintenance_incoming_material', 'asset_id')
    
    op.drop_column('maintenance_asset', 'salvage_value')
    op.drop_column('maintenance_asset', 'useful_life_years')
    op.drop_column('maintenance_asset', 'purchase_price')
    op.drop_column('maintenance_asset', 'purchase_date')
    # ### end Alembic commands ###
