"""Add transcript source kind

Revision ID: 74b2b0236931
Revises: 0925da921477
Create Date: 2024-10-04 14:19:23.625447

"""

from typing import Sequence, Union

import sqlalchemy as sa
from alembic import op

# revision identifiers, used by Alembic.
revision: str = "74b2b0236931"
down_revision: Union[str, None] = "0925da921477"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    sourcekind_enum = sa.Enum("room", "live", "file", name="sourcekind")
    sourcekind_enum.create(op.get_bind())

    op.add_column(
        "transcript",
        sa.Column(
            "source_kind",
            sourcekind_enum,
            nullable=True,
        ),
    )

    op.execute(
        "UPDATE transcript SET source_kind = 'room' WHERE meeting_id IS NOT NULL"
    )
    op.execute("UPDATE transcript SET source_kind = 'live' WHERE meeting_id IS NULL")

    with op.batch_alter_table("transcript", schema=None) as batch_op:
        batch_op.alter_column("source_kind", nullable=False)

    # ### end Alembic commands ###


def downgrade() -> None:
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_column("transcript", "source_kind")
    sourcekind_enum = sa.Enum(name="sourcekind")
    sourcekind_enum.drop(op.get_bind())


# ### end Alembic commands ###
