48 lines
1.3 KiB
PHP
48 lines
1.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Engelsystem\Migrations;
|
|
|
|
use Engelsystem\Config\Config;
|
|
use Engelsystem\Database\Migration\Migration;
|
|
use Engelsystem\Helpers\Carbon;
|
|
use Illuminate\Database\Schema\Builder as SchemaBuilder;
|
|
use stdClass;
|
|
|
|
class CreateFirstUser extends Migration
|
|
{
|
|
use Reference;
|
|
|
|
public function __construct(SchemaBuilder $schemaBuilder, protected Config $config)
|
|
{
|
|
parent::__construct($schemaBuilder);
|
|
}
|
|
|
|
/**
|
|
* Run the migration
|
|
*/
|
|
public function up(): void
|
|
{
|
|
$db = $this->schema->getConnection();
|
|
if ($db->table('users')->count() > 0) {
|
|
return;
|
|
}
|
|
|
|
$db->table('users')->insert([
|
|
'name' => 'admin',
|
|
'email' => 'admin@localhost',
|
|
'password' => password_hash('asdfasdf', PASSWORD_DEFAULT),
|
|
'api_key' => bin2hex(random_bytes(16)),
|
|
'created_at' => Carbon::now(),
|
|
]);
|
|
|
|
/** @var stdClass $admin */
|
|
$admin = $db->table('users')->where('name', 'admin')->first();
|
|
foreach (['users_contact', 'users_personal_data', 'users_state'] as $table) {
|
|
$db->table($table)->insert(['user_id' => $admin->id]);
|
|
}
|
|
$db->table('users_settings')->insert(['user_id' => $admin->id, 'language' => 'en_US', 'theme' => 0]);
|
|
}
|
|
}
|