2018-04-15 05:17:47 +08:00
|
|
|
<?php
|
|
|
|
|
2021-10-31 04:29:59 +08:00
|
|
|
namespace Database\Seeders;
|
|
|
|
|
2022-07-13 02:38:11 +08:00
|
|
|
use BookStack\Auth\Permissions\JointPermissionBuilder;
|
2019-09-14 21:17:55 +08:00
|
|
|
use BookStack\Auth\Role;
|
|
|
|
use BookStack\Auth\User;
|
2021-11-08 19:04:27 +08:00
|
|
|
use BookStack\Entities\Models\Book;
|
2020-11-22 08:17:45 +08:00
|
|
|
use BookStack\Entities\Models\Chapter;
|
|
|
|
use BookStack\Entities\Models\Page;
|
|
|
|
use BookStack\Entities\Tools\SearchIndex;
|
2018-04-15 05:17:47 +08:00
|
|
|
use Illuminate\Database\Seeder;
|
2019-09-14 21:17:55 +08:00
|
|
|
use Illuminate\Support\Str;
|
2018-04-15 05:17:47 +08:00
|
|
|
|
|
|
|
class LargeContentSeeder extends Seeder
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Run the database seeds.
|
|
|
|
*
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function run()
|
|
|
|
{
|
|
|
|
// Create an editor user
|
2021-10-31 04:29:59 +08:00
|
|
|
$editorUser = User::factory()->create();
|
2019-09-14 21:17:55 +08:00
|
|
|
$editorRole = Role::getRole('editor');
|
2018-04-15 05:17:47 +08:00
|
|
|
$editorUser->attachRole($editorRole);
|
|
|
|
|
2021-11-08 19:04:27 +08:00
|
|
|
/** @var Book $largeBook */
|
|
|
|
$largeBook = Book::factory()->create(['name' => 'Large book' . Str::random(10), 'created_by' => $editorUser->id, 'updated_by' => $editorUser->id]);
|
2021-10-31 04:29:59 +08:00
|
|
|
$pages = Page::factory()->count(200)->make(['created_by' => $editorUser->id, 'updated_by' => $editorUser->id]);
|
|
|
|
$chapters = Chapter::factory()->count(50)->make(['created_by' => $editorUser->id, 'updated_by' => $editorUser->id]);
|
2021-11-08 19:04:27 +08:00
|
|
|
|
2018-04-15 05:17:47 +08:00
|
|
|
$largeBook->pages()->saveMany($pages);
|
|
|
|
$largeBook->chapters()->saveMany($chapters);
|
2021-11-08 19:29:25 +08:00
|
|
|
$all = array_merge([$largeBook], array_values($pages->all()), array_values($chapters->all()));
|
2021-11-08 19:04:27 +08:00
|
|
|
|
2022-07-13 03:15:41 +08:00
|
|
|
app()->make(JointPermissionBuilder::class)->rebuildForEntity($largeBook);
|
2021-11-08 19:29:25 +08:00
|
|
|
app()->make(SearchIndex::class)->indexEntities($all);
|
2018-04-15 05:17:47 +08:00
|
|
|
}
|
|
|
|
}
|