| 
					
				 | 
			
			
				@@ -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 ### 
			 |