Files
2023-05-04 15:19:04 +08:00

188 lines
7.9 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\QAQuestionnaireSet;
use App\Models\QAQuestions;
use App\Classes\ValueObjects\Constants\QAType;
class QAQuestionSeeder extends Seeder
{
public function run()
{
$questionnaireSets = [
[
'name' => 'Set 1',
'description' => 'This is set 1 questions',
],
];
foreach ($questionnaireSets as $set) {
$questionnaireSet = QAQuestionnaireSet::create([
'name' => $set['name'],
'description' => $set['description'],
]);
$questions = [];
switch ($set['name']) {
case 'Set 1':
$questions = [
[
'question_number' => 10,
'question_text' => 'Please select one',
'question_type' => QAType::MULTIPLE_CHOICES,
'is_start' => true,
'is_end' => false,
],
[
'question_number' => 20,
'question_text' => 'Question text for question number 20?',
'question_type' => QAType::MULTIPLE_CHOICES,
'is_start' => false,
'is_end' => false,
],
[
'question_number' => 30,
'question_text' => 'Question text for question number 30?',
'question_type' => QAType::MULTIPLE_CHOICES,
'next_nested_question' => 300,
'is_start' => false,
'is_end' => false,
],
[
'question_number' => 40,
'question_text' => 'What is your name?',
'question_type' => QAType::FREE_TEXT,
'is_start' => false,
'is_end' => false,
],
[
'question_number' => 50,
'question_text' => 'The End',
'question_type' => QAType::ANSWER,
'is_start' => false,
'is_end' => true,
],
[
'question_number' => 60,
'question_text' => 'We have received your request and will response as soon as possible.',
'question_type' => QAType::TICKET_CRM,
'is_start' => false,
'is_end' => true,
],
[
'question_number' => 100,
'question_text' => 'Question text for question number 100?',
'question_type' => QAType::MULTIPLE_CHOICES,
'next_nested_question' => 110, //200 //3 digits - first level
'next_main_question' => 20,
'is_start' => false,
'is_end' => false,
],
[
'question_number' => 110,
'question_text' => 'Question text for question number 110?',
'question_type' => QAType::FREE_TEXT,
'next_nested_question' => 1000, //1000 //4 digits - second level
'next_main_question' => 20,
'is_start' => false,
'is_end' => false,
],
[
'question_number' => 300,
'question_text' => 'Question text for question number 300?',
'question_type' => QAType::MULTIPLE_CHOICES,
'next_main_question' => 40,
'is_start' => false,
'is_end' => false,
],
[
'question_number' => 600,
'question_text' => 'Shipping Fee Calculations',
'question_type' => QAType::ANSWER,
'is_start' => false,
'is_end' => true,
],
[
'question_number' => 700,
'question_text' => 'Please enter your measurements',
'question_type' => QAType::FREE_TEXT,
'next_nested_question' => 710,
'next_main_question' => 20,
'is_start' => false,
'is_end' => false,
],
[
'question_number' => 710,
'question_text' => 'Please upload the photo proof',
'question_type' => QAType::DOCUMENT_UPLOAD,
'next_main_question' => 60,
'is_start' => false,
'is_end' => false,
],
[
'question_number' => 800,
'question_text' => 'What is your name?',
'question_type' => QAType::FREE_TEXT,
'next_nested_question' => 810,
'is_start' => false,
'is_end' => false,
],
[
'question_number' => 810,
'question_text' => 'Click Next to speak to our customer service',
'question_type' => QAType::FREE_TEXT,
'is_start' => false,
'is_end' => true,
'end_text' => 'We have received your request and will response as soon as possible.',
],
[
'question_number' => 1000,
'question_text' => 'Question text for question number 1000?',
'question_type' => QAType::FREE_TEXT,
'next_nested_question' => 10000, //10000 - 5 digits - 3rd level
'next_main_question' => 20,
'is_start' => false,
'is_end' => false,
],
[
'question_number' => 10000,
'question_text' => 'Question text for question number 10000?',
'question_type' => QAType::FREE_TEXT,
'next_main_question' => 20,
'is_start' => false,
'is_end' => false,
],
];
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();
}
}
}
}