"""printers plugin: add modelsupplies table Data-driven model -> toner/drum/waste part-number mapping. Replaces the old hardcoded supply_parts table. Revision ID: 0002_modelsupplies_printers Revises: 0001_baseline_printers Create Date: 2026-06-25 """ import sqlalchemy as sa from alembic import op revision = '0002_modelsupplies_printers' down_revision = '0001_baseline_printers' branch_labels = None depends_on = None def upgrade(): op.create_table( 'modelsupplies', sa.Column('modelsupplyid', sa.Integer, primary_key=True), sa.Column('modelnumberid', sa.Integer, sa.ForeignKey('models.modelnumberid'), nullable=False), sa.Column('supplytype', sa.String(20), nullable=False, server_default='toner'), sa.Column('color', sa.String(20), nullable=False, server_default='none'), sa.Column('capacitytier', sa.String(20), nullable=False, server_default='standard'), sa.Column('partnumber', sa.String(50), nullable=False), sa.Column('marketingname', sa.String(120)), sa.Column('pageyield', sa.Integer), sa.Column('notes', sa.Text), sa.Column('createddate', sa.DateTime, nullable=False), sa.Column('modifieddate', sa.DateTime, nullable=False), sa.Column('isactive', sa.Boolean, nullable=False, server_default=sa.true()), sa.UniqueConstraint('modelnumberid', 'partnumber', name='uq_modelsupply_part'), ) op.create_index('idx_modelsupplies_modelnumberid', 'modelsupplies', ['modelnumberid']) def downgrade(): op.drop_index('idx_modelsupplies_modelnumberid', table_name='modelsupplies') op.drop_table('modelsupplies')