ldc-com-app-bo/database/seeders/DirectorySeeder.php
2025-05-28 17:25:44 +02:00

44 lines
1.3 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\AppUser;
use App\Models\Directory;
use App\Models\Tenant;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class DirectorySeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run(): void
{
$directory = new Directory();
$directory->name = [
"fr" => "Salon",
"en" => "Salon",
"de" => "Wohnzimmer",
"nl" => "Tentoonstelling",
];
$directory->directory_id = null;
$directory->needAuthorization = 0;
$directory->is_system = 1;
$directory->order = 1;
$directory->tenant_id = Tenant::query()->first()->getKey();
$directory->saveOrFail();
Directory::factory(14)->create();
// Seeder for directory_authorizations table.
$directories = Directory::query()->where('needAuthorization', true)->get();
AppUser::each(function (AppUser $model) use ($directories) {
$offset = rand(DB::table('directories')->min('id') ?? 1, DB::table('directories')->max('id') ?? 15);
$length = rand(1, 2);
$model->directories()->saveMany($directories->slice($offset, $length));
});
}
}