Example #1
0
 public function anyDefault()
 {
     global $database;
     $schema = $database->connection()->getSchemaBuilder();
     if (!$schema->hasTable('user_groups')) {
         $schema->create('user_groups', function ($table) {
             $table->increments('id');
             $table->integer('parent_id')->index()->default(0);
             $table->string('name', 50)->index()->default('');
             $table->string('desctiption')->index()->default('');
             $table->smallInteger('level')->index()->default(0);
             $table->string('lng')->default('');
             $table->timestamps();
             $table->softDeletes();
         });
     }
     if (!$schema->hasTable('users')) {
         $schema->create('users', function ($table) {
             $table->bigIncrements('id');
             $table->integer('group_id')->index()->default(0);
             $table->string('password', 48)->default('')->index();
             $table->tinyInteger('blocked')->default(0)->index();
             $table->bigInteger('blocked_to')->default(0)->index();
             $table->timestamps();
             $table->softDeletes();
         });
     }
     if (!$schema->hasTable('user_contacts')) {
         $schema->create('user_contacts', function ($table) {
             $table->bigIncrements('id');
             $table->bigInteger('user_id')->index()->default(0);
             $table->tinyInteger('type')->index()->default(Contact::TYPE_EMAIL);
             $table->string('value')->index()->default('');
             $table->tinyInteger('default')->index()->default(0);
             $table->timestamps();
             $table->softDeletes();
         });
     }
     if (!$schema->hasTable('user_sessions')) {
         $schema->create('user_sessions', function ($table) {
             $table->bigIncrements('id');
             $table->bigInteger('user_id')->index()->default(0);
             $table->string('session_id', 48)->index()->default('');
             $table->string('ip_address', 12)->index()->default('');
             $table->bigInteger('stamp')->index()->default(0);
             $table->timestamps();
             $table->softDeletes();
         });
     }
     if (!$schema->hasTable('user_profiles')) {
         $schema->create('user_profiles', function ($table) {
             $table->bigIncrements('id');
             $table->bigInteger('user_id')->index()->default(0);
             $table->string('nicname', 32)->index()->default('');
             $table->string('first_name', 150)->index()->default('');
             $table->string('middle_name', 150)->index()->default('');
             $table->string('last_name', 150)->index()->default('');
             $table->enum('gender', ['MALE', 'FEMALE', 'OTHER'])->index()->default('MALE');
             $table->date('birthday')->index();
             $table->bigInteger('stamp')->index()->default(0);
             $table->timestamps();
             $table->softDeletes();
         });
     }
     /**
      * Install groups
      */
     foreach ($this->groups as $level => $name) {
         $group = new Group();
         $group->name = $name;
         $group->level = $level;
         $group->lng = snake_case($name);
         $group->save();
     }
     unset($level, $name, $group);
     /**
      * Create SuperUser
      */
     $user = new User();
     $user->group_id = 1;
     $user->password = password_crypt('toor');
     $user->save();
     $userAuth = new Contact();
     $userAuth->user_id = $user->id;
     $userAuth->type = Contact::TYPE_EMAIL;
     $userAuth->value = '*****@*****.**';
     $userAuth->default = 1;
     $userAuth->save();
     $userProfile = new Profile();
     $userProfile->user_id = $user->id;
     $userProfile->nicname = 'SuperUser';
     $userProfile->save();
     return 'Installation success!';
 }