<?php

namespace Database\Seeders;

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

class RolesPermisosSeeder extends Seeder
{
    public function run()
    {
        // ---- PERMISOS BASE ----
        $permisos = [
            'ver_clientes',
            'crear_clientes',
            'editar_clientes',
            'eliminar_clientes',

            'ver_productos',
            'crear_productos',
            'editar_productos',
            'eliminar_productos',

            'ver_cotizaciones',
            'crear_cotizaciones',
            'aprobar_cotizaciones',
        ];

        foreach ($permisos as $permiso) {
            Permission::firstOrCreate(['name' => $permiso]);
        }

        // ---- ROLES ----
        $superAdmin = Role::firstOrCreate(['name' => 'super-admin']);
        $companyAdmin = Role::firstOrCreate(['name' => 'company-admin']);
        $vendedor = Role::firstOrCreate(['name' => 'vendedor']);
        $visualizador = Role::firstOrCreate(['name' => 'visualizador']);

        // Super admin tiene TODO
        $superAdmin->syncPermissions(Permission::all());

        // Company admin (todo menos eliminar)
        $companyAdmin->syncPermissions([
            'ver_clientes','crear_clientes','editar_clientes',
            'ver_productos','crear_productos','editar_productos',
            'ver_cotizaciones','crear_cotizaciones','aprobar_cotizaciones',
        ]);

        // Vendedor
        $vendedor->syncPermissions([
            'ver_clientes','crear_clientes',
            'ver_productos',
            'ver_cotizaciones','crear_cotizaciones',
        ]);

        // Visualizador
        $visualizador->syncPermissions([
            'ver_clientes',
            'ver_productos',
            'ver_cotizaciones',
        ]);
    }
}
