id(); $table->foreignId('user_id')->constrained()->onDelete('cascade'); $table->string('commentable_type'); // 'anime', 'episode' $table->unsignedBigInteger('commentable_id'); $table->foreignId('parent_id')->nullable()->constrained('comments')->onDelete('cascade'); $table->text('content'); $table->enum('status', ['pending', 'approved', 'rejected', 'spam'])->default('approved'); $table->boolean('is_pinned')->default(false); $table->integer('like_count')->default(0); $table->timestamps(); $table->index(['commentable_type', 'commentable_id']); }); } public function down(): void { Schema::dropIfExists('comments'); } };