2026_03_22_100000_create_chat_messages_table.php 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. use Illuminate\Database\Migrations\Migration;
  3. use Illuminate\Database\Schema\Blueprint;
  4. use Illuminate\Support\Facades\Schema;
  5. return new class extends Migration
  6. {
  7. public function up(): void
  8. {
  9. Schema::create('chat_messages', function (Blueprint $table) {
  10. $table->id();
  11. $table->foreignId('order_id')->nullable()->constrained()->cascadeOnDelete();
  12. $table->foreignId('reclamation_id')->nullable()->constrained()->cascadeOnDelete();
  13. $table->foreignId('user_id')->constrained()->cascadeOnDelete();
  14. $table->foreignId('target_user_id')->nullable()->constrained('users')->nullOnDelete();
  15. $table->string('notification_type')->default('none'); // none | all | user
  16. $table->text('message')->nullable();
  17. $table->timestamps();
  18. $table->index(['order_id', 'created_at']);
  19. $table->index(['reclamation_id', 'created_at']);
  20. $table->index(['user_id', 'created_at']);
  21. });
  22. }
  23. public function down(): void
  24. {
  25. Schema::dropIfExists('chat_messages');
  26. }
  27. };