id(); $table->string('name')->nullable(); $table->string('status')->nullable(); $table->string('icon')->nullable(); // Allow for optional icons $table->softDeletes(); // For soft deletion $table->timestamps(); }); Schema::create('profile_questions', function (Blueprint $table) { $table->id(); $table->timestamps(); $table->unsignedBigInteger('category_id')->nullable(); $table->foreign('category_id')->references('id')->on('profile_categories'); $table->text('question')->nullable(); $table->string('question_type')->nullable(); $table->string('question_options')->nullable(); }); Schema::create('profile_sub_questions', function (Blueprint $table) { $table->id(); $table->timestamps(); $table->unsignedBigInteger('category_id')->nullable(); $table->foreign('category_id')->references('id')->on('profile_categories'); $table->unsignedBigInteger('question_id')->nullable(); $table->foreign('question_id')->references('id')->on('profile_questions'); $table->text('question')->nullable(); $table->unsignedBigInteger('parent_sub_question_id')->nullable(); $table->foreign('parent_sub_question_id')->references('id')->on('profile_sub_questions'); $table->string('sub_question_type')->nullable(); $table->string('sub_question_options')->nullable(); }); Schema::create('profile_answers', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('category_id')->nullable(); $table->foreign('category_id')->references('id')->on('profile_categories'); $table->text('answer')->nullable(); $table->unsignedBigInteger('patient_id')->nullable(); $table->foreign('patient_id')->references('id')->on('patients'); $table->unsignedBigInteger('question_id')->nullable(); $table->foreign('question_id')->references('id')->on('questions'); $table->unsignedBigInteger('sub_question_id')->nullable(); $table->foreign('sub_question_id')->references('id')->on('profile_sub_questions'); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { // } };