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