12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- use Illuminate\Database\Migrations\Migration;
- use Illuminate\Database\Schema\Blueprint;
- use Illuminate\Support\Facades\Schema;
- use App\DirectMessage;
- use App\Models\Conversation;
- use Illuminate\Support\Facades\DB;
- class CreateConversationsTable extends Migration
- {
- /**
- * Run the migrations.
- *
- * @return void
- */
- public function up()
- {
- Schema::dropIfExists('conversations');
- Schema::create('conversations', function (Blueprint $table) {
- $table->bigIncrements('id');
- $table->bigInteger('to_id')->unsigned()->index();
- $table->bigInteger('from_id')->unsigned()->index();
- $table->bigInteger('dm_id')->unsigned()->nullable();
- $table->bigInteger('status_id')->unsigned()->nullable();
- $table->string('type')->nullable();
- $table->boolean('is_hidden')->default(false)->index();
- $table->boolean('has_seen')->default(false)->index();
- $table->json('metadata')->nullable();
- $table->unique(['to_id', 'from_id']);
- $table->timestamps();
- });
- sleep(10);
- if(DirectMessage::count()) {
- foreach(DirectMessage::lazy() as $msg) {
- Conversation::updateOrInsert([
- 'to_id' => $msg->to_id,
- 'from_id' => $msg->from_id,
- ],
- [
- 'dm_id' => $msg->id,
- 'status_id' => $msg->status_id,
- 'type' => $msg->type,
- 'created_at' => $msg->created_at,
- 'updated_at' => $msg->updated_at
- ]);
- }
- }
- }
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::dropIfExists('conversations');
- }
- }
|