"""Richer discussion items: reality, recommendation, theme, needs_decision

Also clears the terse initial seed so the fuller decisions list replaces it
cleanly on import.

Revision ID: a7b8c9d0e1f2
Revises: f6a7b8c9d0e1
"""
from collections.abc import Sequence

import sqlalchemy as sa
from alembic import op

revision: str = "a7b8c9d0e1f2"
down_revision: str | None = "f6a7b8c9d0e1"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None


def upgrade() -> None:
    op.add_column("discussion_items", sa.Column("reality", sa.String(500), nullable=True))
    op.add_column("discussion_items", sa.Column("recommendation", sa.String(400), nullable=True))
    op.add_column("discussion_items", sa.Column("theme", sa.String(40), nullable=True))
    op.add_column(
        "discussion_items",
        sa.Column("needs_decision", sa.Boolean(), nullable=False, server_default=sa.false()),
    )
    # Replace the terse initial seed; the fuller list loads via `cli discussion`.
    op.execute("DELETE FROM discussion_items WHERE resolved = false")


def downgrade() -> None:
    op.drop_column("discussion_items", "needs_decision")
    op.drop_column("discussion_items", "theme")
    op.drop_column("discussion_items", "recommendation")
    op.drop_column("discussion_items", "reality")
