'use client';

import { useEffect } from 'react';
import { usePathname, useRouter } from 'next/navigation';
import { useAuth } from '@/components/id/auth-provider';

export function useRequireAuth() {
  const router = useRouter();
  const pathname = usePathname();
  const { user, isLoading, isPinLocked, hasStoredSession } = useAuth();

  useEffect(() => {
    if (isLoading) return;
    if (user || isPinLocked || hasStoredSession) return;
    if (pathname.startsWith('/auth/')) return;
    router.replace('/auth/login');
  }, [hasStoredSession, isLoading, isPinLocked, pathname, router, user]);

  return {
    user,
    isLoading,
    isPinLocked,
    isReady: !isLoading && Boolean(user || isPinLocked || hasStoredSession)
  };
}
