"""add repair timeline read permission Revision ID: 0011_repair_timeline Revises: 0010_begin_repair Create Date: 2026-07-29 """ from typing import Sequence, Union from alembic import op revision: str = "0011_repair_timeline" down_revision: Union[str, None] = "0010_begin_repair" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: connection = op.get_bind() connection.exec_driver_sql( """ INSERT INTO permissions (key, description) VALUES ('repairs.read', 'View repair details and timeline events') ON CONFLICT (key) DO UPDATE SET description = EXCLUDED.description """ ) connection.exec_driver_sql( """ INSERT INTO role_permissions (role_id, permission_id) SELECT roles.id, permissions.id FROM roles JOIN permissions ON permissions.key = 'repairs.read' WHERE roles.name IN ('Admin', 'Manager', 'Technician', 'Read Only') ON CONFLICT DO NOTHING """ ) def downgrade() -> None: connection = op.get_bind() connection.exec_driver_sql( """ DELETE FROM role_permissions WHERE permission_id = ( SELECT id FROM permissions WHERE key = 'repairs.read' ) """ ) connection.exec_driver_sql( "DELETE FROM permissions WHERE key = 'repairs.read'" )