id(); $table->foreignId('group_id')->constrained('timeline_groups')->onDelete('cascade'); $table->integer('year'); $table->string('image')->nullable(); $table->integer('sort')->default(999); $table->enum('status', ['draft', 'publish'])->default('publish'); $table->dateTime('published_at')->nullable(); $table->timestamps(); // Indexes $table->index('sort'); $table->index('status'); $table->index('published_at'); // Unique constraint: year must be unique within a group $table->unique(['group_id', 'year']); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('timeline_years'); } };