id(); $table->foreignId('patient_id')->constrained('patients'); $table->foreignId('user_id')->constrained('users'); // therapist/doctor $table->dateTime('appointment_date'); $table->integer('duration_minutes')->default(60); $table->enum('status', ['scheduled', 'confirmed', 'in_progress', 'completed', 'cancelled', 'no_show'])->default('scheduled'); $table->text('notes')->nullable(); $table->text('cancellation_reason')->nullable(); $table->foreignId('cancelled_by')->nullable()->constrained('users'); $table->timestamp('cancelled_at')->nullable(); $table->timestamps(); $table->softDeletes(); }); } public function down(): void { Schema::dropIfExists('appointments'); } };