"""news: add summary, category, publish_date, views_count, deleted_at

Revision ID: 0035
Revises: 0034
Create Date: 2026-06-30
"""
from alembic import op
import sqlalchemy as sa

revision = "0035"
down_revision = "0034"
branch_labels = None
depends_on = None


def upgrade() -> None:
    # Use raw SQL with IF NOT EXISTS — columns may already exist on dev DBs
    # that had this migration applied under revision 0029 before the rename.
    op.execute("ALTER TABLE news ADD COLUMN IF NOT EXISTS summary TEXT")
    op.execute("ALTER TABLE news ADD COLUMN IF NOT EXISTS category VARCHAR(50)")
    op.execute("ALTER TABLE news ADD COLUMN IF NOT EXISTS publish_date TIMESTAMP WITH TIME ZONE")
    op.execute(
        "ALTER TABLE news ADD COLUMN IF NOT EXISTS views_count INTEGER NOT NULL DEFAULT 0"
    )
    op.execute("ALTER TABLE news ADD COLUMN IF NOT EXISTS deleted_at TIMESTAMP WITH TIME ZONE")

    op.execute(
        "CREATE INDEX IF NOT EXISTS ix_news_tenant_deleted ON news (tenant_id, deleted_at)"
    )
    op.execute(
        "CREATE INDEX IF NOT EXISTS ix_news_category ON news (tenant_id, category)"
    )


def downgrade() -> None:
    op.execute("DROP INDEX IF EXISTS ix_news_category")
    op.execute("DROP INDEX IF EXISTS ix_news_tenant_deleted")
    op.execute("ALTER TABLE news DROP COLUMN IF EXISTS deleted_at")
    op.execute("ALTER TABLE news DROP COLUMN IF EXISTS views_count")
    op.execute("ALTER TABLE news DROP COLUMN IF EXISTS publish_date")
    op.execute("ALTER TABLE news DROP COLUMN IF EXISTS category")
    op.execute("ALTER TABLE news DROP COLUMN IF EXISTS summary")
