import type { ObjectCategory, PermissionRight } from '@siop/shared';
import { useMe } from './session';

/** Lecture UI de la matrice — même patron que le web (use-permissions.ts).
 *  L'API re-vérifie chaque requête (ADR-003) : ceci ne fait QUE piloter
 *  l'affichage (onglets, groupes du Menu, boutons d'action). */
export function usePermissions() {
  const { data: me } = useMe();
  const can = (category: ObjectCategory, right: PermissionRight): boolean => {
    const entry = me?.permissions.find((p) => p.objectCategory === category);
    if (!entry) return false;
    switch (right) {
      case 'view':
        return entry.canView;
      case 'viewOther':
        return entry.canViewOther;
      case 'create':
        return entry.canCreate;
      case 'edit':
        return entry.canEdit;
      case 'delete':
        return entry.canDelete;
    }
  };
  return { can };
}
