<?php

use Illuminate\Database\Migrations\Migration;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;

return new class extends Migration
{
    public function up(): void
    {
        $perm = Permission::firstOrCreate(
            ['name' => 'admin.api-logs.index'],
            ['model' => 'api_logs', 'description' => 'API Logs: Ver listado de peticiones', 'guard_name' => 'web']
        );

        $roleAdmin = Role::where('name', 'Admin')->first();
        $roleSupport = Role::where('name', 'Support')->first();
        $roleManager = Role::where('name', 'Manager')->first();

        if ($roleAdmin && !$roleAdmin->hasPermissionTo($perm)) {
            $roleAdmin->givePermissionTo($perm);
        }
        if ($roleSupport && !$roleSupport->hasPermissionTo($perm)) {
            $roleSupport->givePermissionTo($perm);
        }
        if ($roleManager && !$roleManager->hasPermissionTo($perm)) {
            $roleManager->givePermissionTo($perm);
        }
    }

    public function down(): void
    {
        Permission::where('name', 'admin.api-logs.index')->delete();
    }
};
