Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/dceprojects.corals.io/Corals/modules/Survey/database/seeds/SurveyDatabaseSeeder.php
<?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();
    }
}

Spamworldpro Mini