@php
    $protegido = isset($role) && $role->esProtegido();
    $asignados = $permisosAsignados ?? [];
@endphp

<div class="row">
    <div class="col-md-6 mb-3">
        <label class="form-label">Nombre</label>
        <input type="text" class="form-control @error('nombre') is-invalid @enderror" name="nombre" value="{{ old('nombre', $role->nombre ?? '') }}" required @disabled($protegido)>
        @if ($protegido)
            <input type="hidden" name="nombre" value="{{ $role->nombre }}">
            <div class="form-text">Los roles base del sistema no se pueden renombrar.</div>
        @endif
        @error('nombre')<div class="invalid-feedback">{{ $message }}</div>@enderror
    </div>
    <div class="col-md-6 mb-3">
        <label class="form-label">Descripción (opcional)</label>
        <input type="text" class="form-control @error('descripcion') is-invalid @enderror" name="descripcion" value="{{ old('descripcion', $role->descripcion ?? '') }}">
        @error('descripcion')<div class="invalid-feedback">{{ $message }}</div>@enderror
    </div>
</div>

<div class="row">
    <div class="col-md-6 mb-3">
        <label class="form-label">Pantalla de inicio tras iniciar sesión</label>
        <select class="form-select @error('pantalla_inicio') is-invalid @enderror" name="pantalla_inicio">
            <option value="" @selected(old('pantalla_inicio', $role->pantalla_inicio ?? '') === '')>Por defecto (Inicio)</option>
            <option value="facturacion.index" @selected(old('pantalla_inicio', $role->pantalla_inicio ?? '') === 'facturacion.index')>Caja / POS</option>
            <option value="facturas.index" @selected(old('pantalla_inicio', $role->pantalla_inicio ?? '') === 'facturas.index')>Consultar facturas</option>
            <option value="reportes.index" @selected(old('pantalla_inicio', $role->pantalla_inicio ?? '') === 'reportes.index')>Reportes</option>
        </select>
        @error('pantalla_inicio')<div class="invalid-feedback">{{ $message }}</div>@enderror
    </div>
    <div class="col-md-6 mb-3 d-flex align-items-end">
        <div class="form-check">
            <input type="hidden" name="es_admin" value="0">
            <input type="checkbox" class="form-check-input" id="es_admin" name="es_admin" value="1"
                @checked(old('es_admin', $role->es_admin ?? false)) @disabled($protegido)>
            <label class="form-check-label" for="es_admin">Administrador pleno (acceso total, incluye gestionar usuarios/roles y anular facturas)</label>
        </div>
        @if ($protegido)
            <div class="form-text">No se puede cambiar en un rol base del sistema.</div>
        @endif
    </div>
</div>

<div class="mb-3">
    <label class="form-label d-block">Permisos</label>
    <div class="form-text mb-2">Si "Administrador pleno" está marcado, este rol tiene acceso a todo sin importar estos permisos.</div>
    @foreach ($permisos as $categoria => $items)
        <div class="mb-2">
            <div class="fw-semibold small text-muted">{{ $categoria }}</div>
            <div class="row">
                @foreach ($items as $permiso)
                    <div class="col-md-4">
                        <div class="form-check">
                            <input type="checkbox" class="form-check-input" id="permiso_{{ $permiso->id }}" name="permisos[]" value="{{ $permiso->id }}"
                                @checked(collect(old('permisos', $asignados))->contains($permiso->id))>
                            <label class="form-check-label" for="permiso_{{ $permiso->id }}">{{ $permiso->nombre }}</label>
                        </div>
                    </div>
                @endforeach
            </div>
        </div>
    @endforeach
</div>

<div class="d-flex gap-2">
    <button type="submit" class="btn btn-primary">Guardar</button>
    <a href="{{ route('roles.index') }}" class="btn btn-secondary">Cancelar</a>
</div>
