diff --git a/database/migrations/2026_01_21_000000_create_project_task_ai_events_table.php b/database/migrations/2026_01_21_000000_create_project_task_ai_events_table.php new file mode 100644 index 000000000..09b382344 --- /dev/null +++ b/database/migrations/2026_01_21_000000_create_project_task_ai_events_table.php @@ -0,0 +1,33 @@ +bigIncrements('id'); + $table->bigInteger('task_id')->comment('任务ID'); + $table->string('event_type', 50)->comment('事件类型: description/subtasks/assignee/similar'); + $table->string('status', 20)->default('pending')->comment('状态: pending/processing/completed/failed/skipped'); + $table->tinyInteger('retry_count')->unsigned()->default(0)->comment('重试次数'); + $table->json('result')->nullable()->comment('执行结果'); + $table->text('error')->nullable()->comment('错误信息'); + $table->bigInteger('msg_id')->nullable()->default(0)->comment('消息ID'); + $table->timestamp('executed_at')->nullable()->comment('执行时间'); + $table->timestamps(); + + $table->unique(['task_id', 'event_type'], 'uk_task_event'); + $table->index('status', 'idx_status'); + $table->index('created_at', 'idx_created'); + }); + } + + public function down() + { + Schema::dropIfExists('project_task_ai_events'); + } +}