|  | @@ -0,0 +1,166 @@
 | 
	
		
			
				|  |  | +"""empty message
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Revision ID: eacc2313d69c
 | 
	
		
			
				|  |  | +Revises:
 | 
	
		
			
				|  |  | +Create Date: 2023-12-13 15:09:59.056426
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +"""
 | 
	
		
			
				|  |  | +from typing import Sequence, Union
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +from alembic import op
 | 
	
		
			
				|  |  | +import sqlalchemy as sa
 | 
	
		
			
				|  |  | +import sqlmodel
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# revision identifiers, used by Alembic.
 | 
	
		
			
				|  |  | +revision: str = "eacc2313d69c"
 | 
	
		
			
				|  |  | +down_revision: Union[str, None] = None
 | 
	
		
			
				|  |  | +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! ###
 | 
	
		
			
				|  |  | +    op.create_table(
 | 
	
		
			
				|  |  | +        "assistant",
 | 
	
		
			
				|  |  | +        sa.Column("created_at", sa.DateTime(), server_default=sa.text("CURRENT_TIMESTAMP"), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("updated_at", sa.DateTime(), server_default=sa.text("null"), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("model", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("object", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("description", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("file_ids", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("instructions", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("metadata", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("name", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("tools", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.PrimaryKeyConstraint("id"),
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +    op.create_table(
 | 
	
		
			
				|  |  | +        "assistant_file",
 | 
	
		
			
				|  |  | +        sa.Column("created_at", sa.DateTime(), server_default=sa.text("CURRENT_TIMESTAMP"), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("updated_at", sa.DateTime(), server_default=sa.text("null"), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("assistant_id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("object", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.PrimaryKeyConstraint("id"),
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +    op.create_index("assistant_file_assistant_id_id_idx", "assistant_file", ["assistant_id", "id"], unique=False)
 | 
	
		
			
				|  |  | +    op.create_table(
 | 
	
		
			
				|  |  | +        "file",
 | 
	
		
			
				|  |  | +        sa.Column("created_at", sa.DateTime(), server_default=sa.text("CURRENT_TIMESTAMP"), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("updated_at", sa.DateTime(), server_default=sa.text("null"), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("bytes", sa.Integer(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("filename", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("purpose", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("object", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("key", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("status", sa.Enum("error", "processed", "uploaded"), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("status_details", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.PrimaryKeyConstraint("id"),
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +    op.create_index("file_purpose_idx", "file", ["purpose"], unique=False)
 | 
	
		
			
				|  |  | +    op.create_table(
 | 
	
		
			
				|  |  | +        "message",
 | 
	
		
			
				|  |  | +        sa.Column("id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("created_at", sa.DateTime(), server_default=sa.text("CURRENT_TIMESTAMP"), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("updated_at", sa.DateTime(), server_default=sa.text("null"), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("role", sa.Enum("assistant", "user", "system", "function", "tool"), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("thread_id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("object", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("content", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("file_ids", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("metadata", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("assistant_id", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("run_id", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.PrimaryKeyConstraint("id"),
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +    op.create_table(
 | 
	
		
			
				|  |  | +        "message_file",
 | 
	
		
			
				|  |  | +        sa.Column("created_at", sa.DateTime(), server_default=sa.text("CURRENT_TIMESTAMP"), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("updated_at", sa.DateTime(), server_default=sa.text("null"), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("message_id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("object", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.PrimaryKeyConstraint("id"),
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +    op.create_table(
 | 
	
		
			
				|  |  | +        "run",
 | 
	
		
			
				|  |  | +        sa.Column("created_at", sa.DateTime(), server_default=sa.text("CURRENT_TIMESTAMP"), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("updated_at", sa.DateTime(), server_default=sa.text("null"), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("instructions", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("model", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column(
 | 
	
		
			
				|  |  | +            "status",
 | 
	
		
			
				|  |  | +            sa.Enum(
 | 
	
		
			
				|  |  | +                "cancelled", "cancelling", "completed", "expired", "failed", "in_progress", "queued", "requires_action"
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            nullable=True,
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        sa.Column("assistant_id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("thread_id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("object", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("file_ids", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("metadata", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("last_error", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("required_action", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("tools", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("started_at", sa.DateTime(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("completed_at", sa.DateTime(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("cancelled_at", sa.DateTime(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("expires_at", sa.DateTime(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("failed_at", sa.DateTime(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.PrimaryKeyConstraint("id"),
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +    op.create_table(
 | 
	
		
			
				|  |  | +        "run_step",
 | 
	
		
			
				|  |  | +        sa.Column("created_at", sa.DateTime(), server_default=sa.text("CURRENT_TIMESTAMP"), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("updated_at", sa.DateTime(), server_default=sa.text("null"), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("status", sa.Enum("cancelled", "completed", "expired", "failed", "in_progress"), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("type", sa.Enum("message_creation", "tool_calls"), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("assistant_id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("thread_id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("run_id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("object", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("metadata", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("last_error", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("step_details", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("completed_at", sa.DateTime(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("cancelled_at", sa.DateTime(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("expires_at", sa.DateTime(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("failed_at", sa.DateTime(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("message_id", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.PrimaryKeyConstraint("id"),
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +    op.create_index("run_step_run_id_idx", "run_step", ["run_id"], unique=False)
 | 
	
		
			
				|  |  | +    op.create_index("run_step_run_id_type_idx", "run_step", ["run_id", "type"], unique=False)
 | 
	
		
			
				|  |  | +    op.create_table(
 | 
	
		
			
				|  |  | +        "thread",
 | 
	
		
			
				|  |  | +        sa.Column("created_at", sa.DateTime(), server_default=sa.text("CURRENT_TIMESTAMP"), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("updated_at", sa.DateTime(), server_default=sa.text("null"), nullable=True),
 | 
	
		
			
				|  |  | +        sa.Column("id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("object", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
 | 
	
		
			
				|  |  | +        sa.Column("metadata", sa.JSON(), nullable=True),
 | 
	
		
			
				|  |  | +        sa.PrimaryKeyConstraint("id"),
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +    # ### end Alembic commands ###
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def downgrade() -> None:
 | 
	
		
			
				|  |  | +    # ### commands auto generated by Alembic - please adjust! ###
 | 
	
		
			
				|  |  | +    op.drop_table("thread")
 | 
	
		
			
				|  |  | +    op.drop_index("run_step_run_id_type_idx", table_name="run_step")
 | 
	
		
			
				|  |  | +    op.drop_index("run_step_run_id_idx", table_name="run_step")
 | 
	
		
			
				|  |  | +    op.drop_table("run_step")
 | 
	
		
			
				|  |  | +    op.drop_table("run")
 | 
	
		
			
				|  |  | +    op.drop_table("message_file")
 | 
	
		
			
				|  |  | +    op.drop_table("message")
 | 
	
		
			
				|  |  | +    op.drop_index("file_purpose_idx", table_name="file")
 | 
	
		
			
				|  |  | +    op.drop_table("file")
 | 
	
		
			
				|  |  | +    op.drop_index("assistant_file_assistant_id_id_idx", table_name="assistant_file")
 | 
	
		
			
				|  |  | +    op.drop_table("assistant_file")
 | 
	
		
			
				|  |  | +    op.drop_table("assistant")
 | 
	
		
			
				|  |  | +    # ### end Alembic commands ###
 |