id(); $table->foreignId('user_id')->constrained()->onDelete('cascade'); $table->foreignId('receiver_id')->constrained('users')->onDelete('cascade'); $table->text('body')->nullable(); // nullable porque puede ser solo archivo $table->string('attachment')->nullable(); // ruta del archivo $table->string('attachment_type')->nullable(); // 'image', 'audio', 'video' $table->timestamp('read_at')->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('messages'); } };