"""Update message & channel tables Revision ID: 3781e22d8b01 Revises: 7826ab40b532 Create Date: 2024-12-30 03:00:00.000000 """ from alembic import op import sqlalchemy as sa revision = "3781e22d8b01" down_revision = "7826ab40b532" branch_labels = None depends_on = None def upgrade(): # Add 'type' column to the 'channel' table op.add_column( "channel", sa.Column( "type", sa.Text(), nullable=True, ), ) # Add 'parent_id' column to the 'message' table for threads op.add_column( "message", sa.Column("parent_id", sa.Text(), nullable=True), ) op.create_table( "message_reaction", sa.Column( "id", sa.Text(), nullable=False, primary_key=True, unique=True ), # Unique reaction ID sa.Column("user_id", sa.Text(), nullable=False), # User who reacted sa.Column( "message_id", sa.Text(), nullable=False ), # Message that was reacted to sa.Column( "name", sa.Text(), nullable=False ), # Reaction name (e.g. "thumbs_up") sa.Column( "created_at", sa.BigInteger(), nullable=True ), # Timestamp of when the reaction was added ) op.create_table( "channel_member", sa.Column( "id", sa.Text(), nullable=False, primary_key=True, unique=True ), # Record ID for the membership row sa.Column("channel_id", sa.Text(), nullable=False), # Associated channel sa.Column("user_id", sa.Text(), nullable=False), # Associated user sa.Column( "created_at", sa.BigInteger(), nullable=True ), # Timestamp of when the user joined the channel ) def downgrade(): # Revert 'type' column addition to the 'channel' table op.drop_column("channel", "type") op.drop_column("message", "parent_id") op.drop_table("message_reaction") op.drop_table("channel_member")