![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/dceprojects.corals.io/Corals/modules/Survey/database/seeds/ |
<?php namespace Corals\Modules\Survey\database\seeds; use Corals\Menu\Models\Menu; use Corals\Modules\Survey\Models\Question; use Corals\Modules\Survey\Models\Survey; use Corals\Settings\Models\Setting; use Corals\User\Models\Permission; use Illuminate\Database\Seeder; use Spatie\MediaLibrary\MediaCollections\Models\Media; class SurveyDatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $this->call(SurveyPermissionsDatabaseSeeder::class); $this->call(SurveyMenuDatabaseSeeder::class); $this->call(SurveySettingsDatabaseSeeder::class); $this->call(SurveySubmittedNotificationTemplateSeeder::class); $this->createDefaultSurvey(); } /** * */ protected function createDefaultSurvey() { $defaultSurvey = Survey::query()->create([ 'name' => 'default survey', 'status' => 'active' ]); $questions = []; $questions[] = $this->createQuestion(1)->id; $questions[] = $this->createQuestion(2)->id; $defaultSurvey->questions()->sync($questions); } /** * @param $index * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model */ protected function createQuestion($index) { $question = Question::query()->create([ 'title' => "Question{$index}", 'description' => "Question {$index} ", 'type' => 'radio', 'status' => 'active' ]); $question->answers()->createMany([ [ 'text' => "answer{$index}.1", 'score' => 25, 'order' => 1, 'status' => 'active' ], [ 'text' => "answer{$index}.2", 'score' => 25, 'order' => 1, 'status' => 'active' ] ]); return $question; } public function rollback() { Permission::where('name', 'like', 'Survey::%')->delete(); Menu::where('key', 'survey') ->orWhere('active_menu_url', 'like', 'survey%') ->orWhere('url', 'like', 'survey%') ->delete(); Setting::where('category', 'Survey')->delete(); Media::whereIn('collection_name', ['survey-media-collection', 'survey-question-media-collection'])->delete(); } }