/** * Hook TanStack Query — analyse des patterns (Premium). * * Clé `['users', 'patterns']` partagée entre `/progression` et la section * dashboard Premium — un seul appel backend pour les deux affichages. * * `staleTime: 60 s` — l'analyse ne change que quand une nouvelle production est * corrigée ; 60 s évite les rafraîchissements inutiles. * * `enabled` : ne lance la requête QUE si l'utilisateur a la feature. Évite un * 403 parasite pour Free/Standard (la route backend refuse avec * PLAN_INSUFFICIENT — on court-circuite côté client). * * Règle H : aucune logique métier ici — wrap pur autour de `getPatterns`. * Règle D : le check feature utilise `hasAccess`, jamais `plan === 'premium'`. */ import { useQuery } from '@tanstack/react-query' import { getPatterns } from '@/entities/patterns/api' import { hasAccess, type Plan } from '@/entities/user/lib' export function usePatterns(plan: Plan | undefined) { const enabled = plan !== undefined && hasAccess(plan, 'pattern_analysis') return useQuery({ queryKey: ['users', 'patterns'] as const, queryFn: getPatterns, staleTime: 60 * 1000, enabled, }) }