/**
 * Permisos de pedimentos — códigos `pedimentos_mgmt.*` (seed / API).
 *
 * Todas las comprobaciones usan `userHasPermission`, que respeta el comodín de
 * rol Keycloak `admin` (mismo patrón que `invoice-permissions.ts`).
 *
 * **Alta de pedimento (`Nuevo` / `/edit/new`):** requiere `pedimentos_mgmt.create`.
 */
import type { User } from '$lib/auth';
import { userHasPermission } from '$lib/auth';

export function canViewPedimentosList(user: User | null): boolean {
	return userHasPermission(user, 'pedimentos_mgmt.view');
}

/** Permiso de API/rol para crear pedimento. */
export function canCreatePedimento(user: User | null): boolean {
	return userHasPermission(user, 'pedimentos_mgmt.create');
}

export function canEditPedimento(user: User | null): boolean {
	return userHasPermission(user, 'pedimentos_mgmt.edit');
}

export function canDeletePedimento(user: User | null): boolean {
	return userHasPermission(user, 'pedimentos_mgmt.delete');
}

/** Botón "Nuevo Pedimento" y navegación a `/edit/new` — requiere permiso create. */
export function canOpenNuevoPedimentoForm(user: User | null): boolean {
	return canCreatePedimento(user);
}

/** Pantalla de alta (`/edit/new`) o edición. */
export function canAccessPedimentoEditorPage(user: User | null, isCreate: boolean): boolean {
	return isCreate ? canCreatePedimento(user) : canEditPedimento(user);
}
