<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;

class TicketPermissionsSeeder extends Seeder
{
    public function run(): void
    {
        app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();

        $permissions = [
            'tickets.view',
            'tickets.assign',
            'tickets.reply',
            'tickets.update',
        ];

        foreach ($permissions as $permission) {
            Permission::firstOrCreate([
                'name' => $permission,
                'guard_name' => 'web',
            ]);
        }

        $admin = Role::firstOrCreate(['name' => 'admin'], ['guard_name' => 'web']);
        $staff = Role::firstOrCreate(['name' => 'staff'], ['guard_name' => 'web']);

        $admin->givePermissionTo($permissions);
        $staff->givePermissionTo($permissions);
    }
}
