id(); $table->foreignId('student_id')->constrained()->cascadeOnDelete(); $table->foreignId('class_session_id')->nullable()->constrained()->nullOnDelete(); $table->foreignId('course_schedule_id')->nullable()->constrained()->cascadeOnDelete(); $table->date('date')->nullable(); $table->timestamp('attended_at')->nullable(); $table->timestamps(); $table->unique(['student_id', 'class_session_id']); $table->index(['student_id', 'course_schedule_id', 'date']); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('attendances'); } };