diff --git a/app/Http/Resources/HelpMenuQuestionnaireSetsResource.php b/app/Http/Resources/HelpMenuQuestionnaireSetsResource.php new file mode 100644 index 00000000..7c629a1d --- /dev/null +++ b/app/Http/Resources/HelpMenuQuestionnaireSetsResource.php @@ -0,0 +1,23 @@ + $this->name, + 'description' => $this->description, + 'group' => $this->group, + ]; + } +} diff --git a/app/Http/Resources/HelpMenuQuestionsAnswersResource.php b/app/Http/Resources/HelpMenuQuestionsAnswersResource.php index 41542444..98314a16 100644 --- a/app/Http/Resources/HelpMenuQuestionsAnswersResource.php +++ b/app/Http/Resources/HelpMenuQuestionsAnswersResource.php @@ -29,7 +29,7 @@ class HelpMenuQuestionsAnswersResource extends JsonResource return [ 'question_id' => $this->question_id, - 'questionnaire_set_id' => $question ? $question->questionnaire_set_id : null, + 'questionnaire' => new HelpMenuQuestionnaireSetsResource($this->question->questionnaire), 'question_text' => $question ? $question->question_text : null, 'free_text_answer' => $this->free_text_answer, 'source_system' => $user ? QASystemSourceType::getText(QASystemSourceType::IZYIM) : QASystemSourceType::getText($source->system), diff --git a/app/Models/QAQuestions.php b/app/Models/QAQuestions.php index 7aee42a8..673bcf78 100644 --- a/app/Models/QAQuestions.php +++ b/app/Models/QAQuestions.php @@ -1,9 +1,17 @@ BelongsTo(QAQuestionnaireSet::class, 'questionnaire_set_id', 'id'); + } } diff --git a/app/Models/QAUserAnswerSelected.php b/app/Models/QAUserAnswerSelected.php index 50de039d..e85296aa 100644 --- a/app/Models/QAUserAnswerSelected.php +++ b/app/Models/QAUserAnswerSelected.php @@ -30,7 +30,7 @@ class QAUserAnswerSelected extends AbstractModel implements Documentable return $this->BelongsTo(QAUserSource::class, 'source_id', 'id'); } - /** + /** * @return BelongsTo */ public function user(): BelongsTo @@ -38,4 +38,12 @@ class QAUserAnswerSelected extends AbstractModel implements Documentable return $this->BelongsTo(User::class, 'user_id', 'id'); } + /** + * @return BelongsTo + */ + public function question(): BelongsTo + { + return $this->BelongsTo(QAQuestions::class, 'question_id', 'id'); + } + } diff --git a/database/migrations/2023_02_20_134100_create_qa_questionnaire_sets_table.php b/database/migrations/2023_02_20_134100_create_qa_questionnaire_sets_table.php index 60539bec..bb826252 100644 --- a/database/migrations/2023_02_20_134100_create_qa_questionnaire_sets_table.php +++ b/database/migrations/2023_02_20_134100_create_qa_questionnaire_sets_table.php @@ -17,6 +17,7 @@ class CreateQAQuestionnaireSetsTable extends Migration $table->id(); $table->string('name'); $table->string('description')->nullable(); + $table->string('group')->nullable(); $table->unsignedBigInteger('order')->default(0); $table->unsignedBigInteger('next_set')->nullable(); $table->unsignedBigInteger('version')->default(1); diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 3e85a5dc..ed1872de 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -22,7 +22,11 @@ class DatabaseSeeder extends Seeder $this->call(DummyDataSeeder::class); - // $this->call(QAQuestionSeeder::class); + + // $this->call(QAQuestionsDemoSeeder::class); //DEMO POC + // $this->call(QAAnswerOptionsDemoSeeder::class); //DEMO POC + + // $this->call(QAQuestionsSeeder::class); // $this->call(QAAnswerOptionsSeeder::class); } } diff --git a/database/seeders/QAAnswerOptionsDemoSeeder.php b/database/seeders/QAAnswerOptionsDemoSeeder.php new file mode 100644 index 00000000..34007228 --- /dev/null +++ b/database/seeders/QAAnswerOptionsDemoSeeder.php @@ -0,0 +1,193 @@ +display_text = "Billing"; + $answerOption->value = "Billing"; + $answerOption->question_number = 10; + $answerOption->next_question_number = 100; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 2 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Shipping"; + $answerOption->value = "Shipping"; + $answerOption->question_number = 10; + $answerOption->next_question_number = 100; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 3 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Returns"; + $answerOption->value = "Returns"; + $answerOption->question_number = 10; + $answerOption->next_question_number = 100; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 4 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Product Information"; + $answerOption->value = "Product Information"; + $answerOption->question_number = 10; + $answerOption->next_question_number = 100; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 5 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Technical Support"; + $answerOption->value = "Technical Support"; + $answerOption->question_number = 10; + $answerOption->next_question_number = 100; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 6 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Shipping Fee Calculation"; + $answerOption->value = "Shipping Fee Calculation"; + $answerOption->question_number = 10; + $answerOption->next_question_number = 600; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 7 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Error-in Measurements"; + $answerOption->value = "Error-in Measurements"; + $answerOption->question_number = 10; + $answerOption->next_question_number = 700; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 8 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Contact Us"; + $answerOption->value = "Contact Us"; + $answerOption->question_number = 10; + $answerOption->next_question_number = 800; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 1 for Question 20 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Option 1 for Question 20"; + $answerOption->value = "Option 1 for Question 20"; + $answerOption->question_number = 20; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 2 for Question 20 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Option 2 for Question 20"; + $answerOption->value = "Option 2 for Question 20"; + $answerOption->question_number = 20; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 1 for Question 100 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Option 1 for Question 100"; + $answerOption->value = "Option 1 for Question 100"; + $answerOption->question_number = 100; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 2 for Question 100 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Option 2 for Question 100"; + $answerOption->value = "Option 2 for Question 100"; + $answerOption->question_number = 100; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 1 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Option 1 for Question 30"; + $answerOption->value = "Option 1 for Question 30"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 2 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Option 2 for Question 30"; + $answerOption->value = "Option 2 for Question 30"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 3 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Option 3 for Question 30"; + $answerOption->value = "Option 3 for Question 30"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + + // Option 1 for Question 300 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Option 1 for Question 300"; + $answerOption->value = "Option 1 for Question 300"; + $answerOption->question_number = 300; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 2 for Question 300 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Option 2 for Question 300"; + $answerOption->value = "Option 2 for Question 300"; + $answerOption->question_number = 300; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 3 for Question 300 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Option 3 for Question 300"; + $answerOption->value = "Option 3 for Question 300"; + $answerOption->question_number = 300; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 1 for Question 600 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = '

Et harum accusamus eum quis dolorum?

Lorem ipsum dolor sit amet. Est corporis voluptas et repudiandae libero Aut quis! Est aperiam voluptatum eum quidem rerumnam deserunt sit internos possimus non dolore voluptate. Vel explicabo aliquam Sit sunt ut maxime voluptatibus non vero libero ad ratione dolore.

Ea incidunt dolor in obcaecati harum ut dignissimos facilis!

Et adipisci illo et laborum internos Nam aperiam est ipsa nisi non quia architecto ut itaque autem. Eos maiores sunt Et voluptas aut expedita quidem aut odio repellendus eum neque voluptate et iusto nisi vel consequatur quos. Sit doloribus omnis in minima illoQui soluta est omnis quasi vel officia reiciendis qui aliquid quis! Sed odit esse aut sint laborumEa internos et magni amet sed dolores omnis hic totam temporibus ut quia numquam.

Et laborum quaerat vel animi ipsum.

Aut quos libero Et explicabo qui enim libero id rerum ipsa. Est quod tempora est soluta enimaut quasi aut eligendi fugit et fugit Quis.

+ '; + $answerOption->value = "Answer"; + $answerOption->question_number = 600; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + + // Set 2 + // Option 1 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Yes"; + $answerOption->value = "Yes"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + // Option 2 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "No"; + $answerOption->value = "No"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + } +} diff --git a/database/seeders/QAAnswerOptionsSeeder.php b/database/seeders/QAAnswerOptionsSeeder.php index af13e165..da9ec8a1 100644 --- a/database/seeders/QAAnswerOptionsSeeder.php +++ b/database/seeders/QAAnswerOptionsSeeder.php @@ -9,169 +9,120 @@ class QAAnswerOptionsSeeder extends Seeder { public function run() { - //Set 1 - // Option 1 for Question 10 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Billing"; - $answerOption->value = "Billing"; - $answerOption->question_number = 10; - $answerOption->next_question_number = 100; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); + // Set 1 + // Option 1 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "1 (Very Dissatisfied)"; + $answerOption->value = "1"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); - // Option 2 for Question 10 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Shipping"; - $answerOption->value = "Shipping"; - $answerOption->question_number = 10; - $answerOption->next_question_number = 100; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); + // Option 2 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "2 (Dissatisfied)"; + $answerOption->value = "2"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); - // Option 3 for Question 10 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Returns"; - $answerOption->value = "Returns"; - $answerOption->question_number = 10; - $answerOption->next_question_number = 100; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); + // Option 3 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "3 (Neutral)"; + $answerOption->value = "3"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); - // Option 4 for Question 10 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Product Information"; - $answerOption->value = "Product Information"; - $answerOption->question_number = 10; - $answerOption->next_question_number = 100; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); + // Option 4 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "4 (Satisfied)"; + $answerOption->value = "4"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); - // Option 5 for Question 10 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Technical Support"; - $answerOption->value = "Technical Support"; - $answerOption->question_number = 10; - $answerOption->next_question_number = 100; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); + // Option 5 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "5 (Very Satisfied)"; + $answerOption->value = "5"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); - // Option 6 for Question 10 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Shipping Fee Calculation"; - $answerOption->value = "Shipping Fee Calculation"; - $answerOption->question_number = 10; - $answerOption->next_question_number = 600; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); - // Option 7 for Question 10 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Error-in Measurements"; - $answerOption->value = "Error-in Measurements"; - $answerOption->question_number = 10; - $answerOption->next_question_number = 700; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); - - // Option 8 for Question 10 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Contact Us"; - $answerOption->value = "Contact Us"; - $answerOption->question_number = 10; - $answerOption->next_question_number = 800; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); + // Set 1 // Option 1 for Question 20 $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Option 1 for Question 20"; - $answerOption->value = "Option 1 for Question 20"; + $answerOption->display_text = "Yes"; + $answerOption->value = "Yes"; $answerOption->question_number = 20; $answerOption->questionnaire_set_id = 1; $answerOption->save(); // Option 2 for Question 20 $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Option 2 for Question 20"; - $answerOption->value = "Option 2 for Question 20"; + $answerOption->display_text = "Partially"; + $answerOption->value = "Partially"; $answerOption->question_number = 20; $answerOption->questionnaire_set_id = 1; $answerOption->save(); - // Option 1 for Question 100 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Option 1 for Question 100"; - $answerOption->value = "Option 1 for Question 100"; - $answerOption->question_number = 100; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); - - // Option 2 for Question 100 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Option 2 for Question 100"; - $answerOption->value = "Option 2 for Question 100"; - $answerOption->question_number = 100; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); - - // Option 1 for Question 30 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Option 1 for Question 30"; - $answerOption->value = "Option 1 for Question 30"; - $answerOption->question_number = 30; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); - - // Option 2 for Question 30 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Option 2 for Question 30"; - $answerOption->value = "Option 2 for Question 30"; - $answerOption->question_number = 30; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); - - // Option 3 for Question 30 - $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Option 3 for Question 30"; - $answerOption->value = "Option 3 for Question 30"; - $answerOption->question_number = 30; - $answerOption->questionnaire_set_id = 1; - $answerOption->save(); - - - // Option 1 for Question 300 + // Option 3 for Question 20 $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Option 1 for Question 300"; - $answerOption->value = "Option 1 for Question 300"; - $answerOption->question_number = 300; + $answerOption->display_text = "No"; + $answerOption->value = "No"; + $answerOption->question_number = 20; $answerOption->questionnaire_set_id = 1; $answerOption->save(); - // Option 2 for Question 300 + + + // Set 1 + // Option 1 for Question 30 $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Option 2 for Question 300"; - $answerOption->value = "Option 2 for Question 300"; - $answerOption->question_number = 300; + $answerOption->display_text = "Very Clear"; + $answerOption->value = "Very Clear"; + $answerOption->question_number = 30; $answerOption->questionnaire_set_id = 1; $answerOption->save(); - // Option 3 for Question 300 + // Option 2 for Question 30 $answerOption = new QAAnswerOptions; - $answerOption->display_text = "Option 3 for Question 300"; - $answerOption->value = "Option 3 for Question 300"; - $answerOption->question_number = 300; + $answerOption->display_text = "Clear"; + $answerOption->value = "Clear"; + $answerOption->question_number = 30; $answerOption->questionnaire_set_id = 1; $answerOption->save(); - // Option 1 for Question 600 + // Option 3 for Question 30 $answerOption = new QAAnswerOptions; - $answerOption->display_text = '

Et harum accusamus eum quis dolorum?

Lorem ipsum dolor sit amet. Est corporis voluptas et repudiandae libero Aut quis! Est aperiam voluptatum eum quidem rerumnam deserunt sit internos possimus non dolore voluptate. Vel explicabo aliquam Sit sunt ut maxime voluptatibus non vero libero ad ratione dolore.

Ea incidunt dolor in obcaecati harum ut dignissimos facilis!

Et adipisci illo et laborum internos Nam aperiam est ipsa nisi non quia architecto ut itaque autem. Eos maiores sunt Et voluptas aut expedita quidem aut odio repellendus eum neque voluptate et iusto nisi vel consequatur quos. Sit doloribus omnis in minima illoQui soluta est omnis quasi vel officia reiciendis qui aliquid quis! Sed odit esse aut sint laborumEa internos et magni amet sed dolores omnis hic totam temporibus ut quia numquam.

Et laborum quaerat vel animi ipsum.

Aut quos libero Et explicabo qui enim libero id rerum ipsa. Est quod tempora est soluta enimaut quasi aut eligendi fugit et fugit Quis.

- '; - $answerOption->value = "Answer"; - $answerOption->question_number = 600; + $answerOption->display_text = "Neutral"; + $answerOption->value = "Neutral"; + $answerOption->question_number = 30; $answerOption->questionnaire_set_id = 1; $answerOption->save(); + // Option 4 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Unclear"; + $answerOption->value = "Unclear"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + // Option 5 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Very Unclear"; + $answerOption->value = "Very Unclear"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 1; + $answerOption->save(); + + + + // Set 2 // Option 1 for Question 10 @@ -179,15 +130,227 @@ class QAAnswerOptionsSeeder extends Seeder $answerOption->display_text = "Yes"; $answerOption->value = "Yes"; $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 2; + $answerOption->save(); + + // Option 2 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Somewhat"; + $answerOption->value = "Somewhat"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 2; + $answerOption->save(); + + // Option 3 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "No"; + $answerOption->value = "No"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 2; + $answerOption->save(); + + + + // Set 2 + // Option 1 for Question 20 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Exceeded Expectations"; + $answerOption->value = "Exceeded Expectations"; + $answerOption->question_number = 20; + $answerOption->questionnaire_set_id = 2; + $answerOption->save(); + + // Option 2 for Question 20 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Met Expectations"; + $answerOption->value = "Met Expectations"; + $answerOption->question_number = 20; + $answerOption->questionnaire_set_id = 2; + $answerOption->save(); + + // Option 3 for Question 20 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Below Expectations"; + $answerOption->value = "Below Expectations"; + $answerOption->question_number = 20; + $answerOption->questionnaire_set_id = 2; + $answerOption->save(); + + + + // Set 2 + // Option 1 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "1 (Very Dissatisfied)"; + $answerOption->value = "1"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 2; + $answerOption->save(); + + // Option 2 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "2 (Dissatisfied)"; + $answerOption->value = "2"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 2; + $answerOption->save(); + + // Option 3 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "3 (Neutral)"; + $answerOption->value = "3"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 2; + $answerOption->save(); + + // Option 4 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "4 (Satisfied)"; + $answerOption->value = "4"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 2; + $answerOption->save(); + + // Option 5 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "5 (Very Satisfied)"; + $answerOption->value = "5"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 2; + $answerOption->save(); + + + + + + // Set 3 + // Option 1 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Immediately"; + $answerOption->value = "Immediately"; + $answerOption->question_number = 10; $answerOption->questionnaire_set_id = 3; $answerOption->save(); // Option 2 for Question 10 $answerOption = new QAAnswerOptions; - $answerOption->display_text = "No"; - $answerOption->value = "No"; + $answerOption->display_text = "Within a few hours"; + $answerOption->value = "Within a few hours"; $answerOption->question_number = 10; $answerOption->questionnaire_set_id = 3; $answerOption->save(); + + // Option 3 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Within a day"; + $answerOption->value = "Within a day"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + // Option 4 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "More than a day"; + $answerOption->value = "More than a day"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + // Option 5 for Question 10 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Never received a response"; + $answerOption->value = "Never received a response"; + $answerOption->question_number = 10; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + + + // Set 3 + // Option 1 for Question 20 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Very Clear"; + $answerOption->value = "Very Clear"; + $answerOption->question_number = 20; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + // Option 2 for Question 20 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Clear"; + $answerOption->value = "Clear"; + $answerOption->question_number = 20; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + // Option 3 for Question 20 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Neutral"; + $answerOption->value = "Neutral"; + $answerOption->question_number = 20; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + // Option 4 for Question 20 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Unclear"; + $answerOption->value = "Unclear"; + $answerOption->question_number = 20; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + // Option 5 for Question 20 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Very Unclear"; + $answerOption->value = "Very Unclear"; + $answerOption->question_number = 20; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + + + // Set 3 + // Option 1 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Very Likely"; + $answerOption->value = "Very Likely"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + // Option 2 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Likely"; + $answerOption->value = "Likely"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + // Option 3 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Neutral"; + $answerOption->value = "Neutral"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + // Option 4 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Unlikely"; + $answerOption->value = "Unlikely"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + // Option 5 for Question 30 + $answerOption = new QAAnswerOptions; + $answerOption->display_text = "Very Unlikely"; + $answerOption->value = "Very Unlikely"; + $answerOption->question_number = 30; + $answerOption->questionnaire_set_id = 3; + $answerOption->save(); + + + } } diff --git a/database/seeders/QAQuestionSeeder.php b/database/seeders/QAQuestionsDemoSeeder.php similarity index 99% rename from database/seeders/QAQuestionSeeder.php rename to database/seeders/QAQuestionsDemoSeeder.php index 6b7321f9..bdcdd298 100644 --- a/database/seeders/QAQuestionSeeder.php +++ b/database/seeders/QAQuestionsDemoSeeder.php @@ -7,7 +7,7 @@ use App\Models\QAQuestionnaireSet; use App\Models\QAQuestions; use App\Classes\ValueObjects\Constants\QAType; -class QAQuestionSeeder extends Seeder +class QAQuestionsDemoSeeder extends Seeder { public function run() { diff --git a/database/seeders/QAQuestionsSeeder.php b/database/seeders/QAQuestionsSeeder.php new file mode 100644 index 00000000..de5005d6 --- /dev/null +++ b/database/seeders/QAQuestionsSeeder.php @@ -0,0 +1,144 @@ + 'Set 1', + 'description' => 'Customer Support Satisfaction Survey', + 'group' => 'Feedback' + ], + [ + 'name' => 'Set 2', + 'description' => 'First Order Experience Feedback', + 'group' => 'Feedback' + ], + [ + 'name' => 'Set 3', + 'description' => 'Sales Inquiry Experience', + 'group' => 'Feedback' + ], + ]; + + foreach ($questionnaireSets as $set) { + $questionnaireSet = QAQuestionnaireSet::create([ + 'name' => $set['name'], + 'description' => $set['description'], + 'group' => $set['group'], + ]); + + $questions = []; + + switch ($set['name']) { + case 'Set 1': + $questions = [ + [ + 'question_number' => 10, + 'question_text' => 'On a scale of 1 to 5, how satisfied are you with the time it took to receive a response?', + 'question_type' => QAType::MULTIPLE_CHOICES, + 'is_start' => true, + 'is_end' => false, + ], + [ + 'question_number' => 20, + 'question_text' => 'Was your issue resolved during this interaction?', + 'question_type' => QAType::MULTIPLE_CHOICES, + 'is_start' => false, + 'is_end' => false, + ], + [ + 'question_number' => 30, + 'question_text' => 'How clear and understandable was the communication from the support team?', + 'question_type' => QAType::MULTIPLE_CHOICES, + 'is_start' => false, + 'is_end' => true, + ] + ]; + break; + case 'Set 2': + $questions = [ + [ + 'question_number' => 10, + 'question_text' => 'Did you find what you were looking for without any issues?', + 'question_type' => QAType::MULTIPLE_CHOICES, + 'is_start' => true, + 'is_end' => false, + ], + [ + 'question_number' => 20, + 'question_text' => 'Did the service meet your expectations?', + 'question_type' => QAType::MULTIPLE_CHOICES, + 'is_start' => false, + 'is_end' => false, + ], + [ + 'question_number' => 30, + 'question_text' => 'On a scale of 1 to 5, how satisfied are you with the delivery time?', + 'question_type' => QAType::MULTIPLE_CHOICES, + 'is_start' => false, + 'is_end' => true, + ] + ]; + break; + case 'Set 3': + $questions = [ + [ + 'question_number' => 10, + 'question_text' => 'How quickly did our sales team respond to your inquiry?', + 'question_type' => QAType::MULTIPLE_CHOICES, + 'is_start' => true, + 'is_end' => false, + ], + [ + 'question_number' => 20, + 'question_text' => 'Was the information provided by our sales team clear and easy to understand?', + 'question_type' => QAType::MULTIPLE_CHOICES, + 'is_start' => false, + 'is_end' => false, + ], + [ + 'question_number' => 30, + 'question_text' => 'After interacting with our sales team, how likely are you to use our service?', + 'question_type' => QAType::MULTIPLE_CHOICES, + 'is_start' => false, + 'is_end' => true, + ] + ]; + break; + } + + foreach ($questions as $key => $questionData) { + $question = new QAQuestions; + $question->question_number = $questionData['question_number']; + $question->question_text = $questionData['question_text']; + $question->question_type = $questionData['question_type']; + $question->questionnaire_set_id = $questionnaireSet->id; + + if (isset($questionData['next_nested_question'])) { + $question->next_nested_question = $questionData['next_nested_question']; + } + if (isset($questionData['next_main_question'])) { + $question->next_main_question = $questionData['next_main_question']; + } + + $question->is_start = $questionData['is_start']; + $question->is_end = $questionData['is_end']; + if (isset($questionData['end_text'])) { + $question->end_text = $questionData['end_text']; + } + + $question->order = $key + 1; + $question->save(); + } + } + } +} diff --git a/resources/assets/vue/components/feedback/elements/QuestionAnswerComponent.vue b/resources/assets/vue/components/feedback/elements/QuestionAnswerComponent.vue index 14b42e1c..1ad87455 100644 --- a/resources/assets/vue/components/feedback/elements/QuestionAnswerComponent.vue +++ b/resources/assets/vue/components/feedback/elements/QuestionAnswerComponent.vue @@ -1,6 +1,6 @@