File "RoleTableSeeder.php"

Full Path: /var/www/html/back/database/seeders/RoleTableSeeder.php
File size: 1.04 KB
MIME-type: text/x-php
Charset: utf-8

<?php

declare(strict_types=1);

namespace Database\Seeders;

use App\Domain\Users\UserService;
use App\Enums\RoleEnum;
use App\Models\System;
use App\Models\User;
use Illuminate\Database\Seeder;

final class RoleTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        /**
         * @var UserService $service
         */
        $service = app()->make(UserService::class);
        $roles = [
            //'admin', // Супер-пользователь
            RoleEnum::ACCOUNTANT, // Бухгалтер
            RoleEnum::MODERATOR, // Согласование
            RoleEnum::COLLABORATOR // Сотрудник
        ];
        $users = User::query()->where('email', '!=', 'replay@top-it.ru')->get();
        $models = System::query()->get();
        foreach ($users as $index => $user) {
            $role = $roles[$index % count($roles)];
            foreach ($models as $model) {
                $service->assignRole($user, $role, $model->id);
            }
        }
    }
}