"""task dependencies Revision ID: 3c6a2d3df4a1 Revises: 1d844b04ee06 Create Date: 2026-02-06 """ from __future__ import annotations from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = "3c6a2d3df4a1" down_revision = "1d844b04ee06" branch_labels = None depends_on = None def upgrade() -> None: op.create_table( "task_dependencies", sa.Column("id", sa.Uuid(), nullable=False), sa.Column("board_id", sa.Uuid(), nullable=False), sa.Column("task_id", sa.Uuid(), nullable=False), sa.Column("depends_on_task_id", sa.Uuid(), nullable=False), sa.Column("created_at", sa.DateTime(), nullable=False), sa.ForeignKeyConstraint( ["board_id"], ["boards.id"], ondelete="CASCADE", ), sa.ForeignKeyConstraint( ["task_id"], ["tasks.id"], ondelete="CASCADE", ), sa.ForeignKeyConstraint( ["depends_on_task_id"], ["tasks.id"], ondelete="CASCADE", ), sa.PrimaryKeyConstraint("id"), sa.UniqueConstraint( "task_id", "depends_on_task_id", name="uq_task_dependencies_task_id_depends_on_task_id", ), sa.CheckConstraint( "task_id <> depends_on_task_id", name="ck_task_dependencies_no_self", ), ) op.create_index( "ix_task_dependencies_board_id", "task_dependencies", ["board_id"], unique=False, ) op.create_index( "ix_task_dependencies_task_id", "task_dependencies", ["task_id"], unique=False, ) op.create_index( "ix_task_dependencies_depends_on_task_id", "task_dependencies", ["depends_on_task_id"], unique=False, ) def downgrade() -> None: op.drop_index("ix_task_dependencies_depends_on_task_id", table_name="task_dependencies") op.drop_index("ix_task_dependencies_task_id", table_name="task_dependencies") op.drop_index("ix_task_dependencies_board_id", table_name="task_dependencies") op.drop_table("task_dependencies")