"""Архив проектов (ТЗ 3.11): поле is_archived.
«Закрыт» (relevance_status='archived') уходит: такие проекты переезжают
в архив (is_archived=True, relevance_status='active') — история сохраняется,
из рабочих видов пропадают.
"""
from collections.abc import Sequence
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision: str = "a5b6c7d8e9f0"
down_revision: str | Sequence[str] | None = "b3c4d5e6f7a8"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
op.add_column(
"projects",
sa.Column("is_archived", sa.Boolean(), nullable=False, server_default=sa.false()),
)
op.execute(
"UPDATE projects SET is_archived = true, relevance_status = 'active'"
" WHERE relevance_status = 'archived'"
)
def downgrade() -> None:
op.execute(
"UPDATE projects SET relevance_status = 'archived' WHERE is_archived = true"
)
op.drop_column("projects", "is_archived")