id(); $table->foreignId('website_id')->constrained()->cascadeOnDelete(); $table->foreignId('visitor_id')->constrained()->cascadeOnDelete(); $table->foreignId('analytics_session_id')->constrained()->cascadeOnDelete(); $table->string('name'); $table->string('category')->nullable(); $table->string('action')->nullable(); $table->string('label')->nullable(); $table->decimal('value', 15, 4)->nullable(); $table->json('properties')->nullable(); $table->timestamp('occurred_at'); $table->timestamps(); $table->index(['website_id', 'name', 'occurred_at']); $table->index(['website_id', 'occurred_at']); $table->index('category'); }); } public function down(): void { Schema::dropIfExists('events'); } };