<?php

namespace Database\Seeders;

use App\Models\User;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;

class AddRoleSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        $permissions = [
			// Topics permissions
            'topics.dashboard',
            'topics.menu',
            'topics.manager',
            'topics.view',
            'topics.create',
            'topics.edit',
            'topics.delete',
            'topics.publish',
            'topics.comment',
            'topics.owner.edit',
            'topics.owner.delete',
			
			// Topics category permissions
            'topics.category.dashboard',
            'topics.category.menu',
            'topics.category.manager',
            'topics.category.view',
            'topics.category.create',
            'topics.category.edit',
            'topics.category.delete',
			
			// Topics tags permissions
            'topics.tag.dashboard',
            'topics.tag.menu',
            'topics.tag.manager',
            'topics.tag.view',
            'topics.tag.create',
            'topics.tag.edit',
            'topics.tag.delete',
        ];

        foreach ($permissions as $permission) {
			$check = Permission::where('name', $permission)->exists();
			if (!$check) {
				Permission::create(['name' => $permission]);
			}
        }
	    
	    $adminRole = Role::where('name', 'administrator')->first();
		if ($adminRole) {
			$adminRole->givePermissionTo($permissions);
		}

        /*$expertRole = Role::create(['name' => 'expert']);
        $expertRole->givePermissionTo([
            'topics.manager',
            'topics.view',
            'topics.create',
            'topics.edit',
            'topics.delete',
            'topics.publish',
            'topics.comment',
            'topics.owner.edit',
            'topics.owner.delete',
            'topics.category.manager',
            'topics.category.view',
            'topics.category.create',
            'topics.category.edit',
            'topics.category.delete',
        ]);

        $userRole = Role::create(['name' => 'user']);
        $userRole->givePermissionTo([
            'topics.view',
            'topics.create',
            'topics.comment',
            'topics.owner.edit',
            'topics.category.view',
            'topics.category.create',
        ]);*/

        /*$user = User::find(1);
        $user->update([
            'email'    => 'admin@admin.dev',
            'password' => bcrypt('abc1234$'),
        ]);

        $expert = User::create([
            'name'              => 'Expert',
            'email'             => 'expert@admin.dev',
            'password'          => bcrypt('abc1234$'),
            'email_verified_at' => now(),
        ]);
        $expert->assignRole('expert');

        $user = User::create([
            'name'              => 'user',
            'email'             => 'user@admin.dev',
            'password'          => bcrypt('abc1234$'),
            'email_verified_at' => now(),
        ]);
        $user->assignRole('user');*/

    }
}
