"""add story_image_intents Revision ID: 0005_story_image_intents Revises: 0004_migrate_md Create Date: 2026-03-19 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa revision: str = "0005_story_image_intents" down_revision: Union[str, Sequence[str], None] = "0004_migrate_md" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.create_table( "story_image_intents", sa.Column("id", sa.String(), nullable=False), sa.Column("story_id", sa.String(), nullable=False), sa.Column("story_version_id", sa.String(), nullable=True), sa.Column("intent_role", sa.String(), nullable=False), sa.Column("source_span", sa.JSON(), nullable=True), sa.Column("caption", sa.String(), nullable=True), sa.Column("prompt_brief", sa.Text(), nullable=True), sa.Column("style_profile", sa.String(), nullable=True), sa.Column("status", sa.String(), nullable=False), sa.Column("asset_id", sa.String(), nullable=True), sa.Column("error", sa.Text(), nullable=True), sa.Column("created_at", sa.DateTime(timezone=True), nullable=True), sa.Column("updated_at", sa.DateTime(timezone=True), nullable=True), sa.ForeignKeyConstraint(["story_id"], ["stories.id"], ondelete="CASCADE"), sa.ForeignKeyConstraint( ["story_version_id"], ["story_versions.id"], ondelete="SET NULL", ), sa.PrimaryKeyConstraint("id"), if_not_exists=True, ) op.create_index( op.f("ix_story_image_intents_story_id"), "story_image_intents", ["story_id"], unique=False, if_not_exists=True, ) def downgrade() -> None: op.drop_index( op.f("ix_story_image_intents_story_id"), table_name="story_image_intents", ) op.drop_table("story_image_intents")