import { useCallback } from 'react';
import { useAuthStore } from '../stores/authStore';

/**
 * دسترسی کاربر در context فعال.
 *
 * نبودِ فیلد permissions یعنی «محیط شخصی، محدودیتی نیست» — نه «هیچ دسترسی».
 * فقط پزشکِ عضو کلینیک و منشی، context دارای مجوز می‌گیرند.
 */
export function usePermissions() {
  const context = useAuthStore((s) => s.context);
  const primaryRole = useAuthStore((s) => s.primaryRole);

  const can = useCallback(
    (resource: string, action: string): boolean => {
      if (primaryRole === 'admin') return true;

      // مجوز per-context حساب می‌شود نه per-role: کاربری که مالک یک کلینیک است
      // ممکن است در کلینیک دیگری فقط عضو باشد.
      const perms = context?.permissions as { resources?: Record<string, Record<string, boolean>> } | undefined | null;
      if (!perms?.resources) return true;

      return Boolean(perms.resources[resource]?.[action]);
    },
    [context, primaryRole],
  );

  return { can };
}
