import { useSelector } from 'react-redux';

// Returns the permissions array for the given projectId from the session-loaded Redux state.
// Always available after Dashboard mounts — no per-project fetch required.
export const useProjectPermissions = (projectId) => {
    return useSelector(
        (state) => state.auth.permissions.projects[String(projectId)]?.permissions ?? []
    );
};

export const hasPermission = (user, requiredPermissions = [], projectPermissions = null, scope = 'project') => {
    if (!user || !Array.isArray(requiredPermissions)) return false;

    if (user.is_superadmin) return true;

    let userPermissions = [];
    if (scope === 'project' && projectPermissions) {
        userPermissions = Array.isArray(projectPermissions) ? projectPermissions : [];
    }
    if (scope === 'global') {
        userPermissions = user.llc_permissions ?? [];
    }

    if (!Array.isArray(userPermissions)) return false;

    return requiredPermissions.some(permission => userPermissions.includes(permission));
};
