'use client';

import { useEffect } from 'react';
import { useUserStore } from '@/stores/userStore';

export function AuthProvider({ children }: { children: React.ReactNode }) {
  const { setUser, setAuthenticated } = useUserStore();

  useEffect(() => {
    const checkAuth = async () => {
      try {
        // Call verify endpoint - cookies are sent automatically
        const response = await fetch('/api/frontend/user/auth/verify', {
          credentials: 'include',
        });

        if (response.ok) {
          const data = await response.json();
          if (data.authenticated && data.user) {
            setUser(data.user);
            setAuthenticated(true);
          } else {
            setUser(null);
            setAuthenticated(false);
          }
        } else {
          setUser(null);
          setAuthenticated(false);
        }
      } catch (error) {
        console.error('Auth check error:', error);
        setUser(null);
        setAuthenticated(false);
      } 
    };

    checkAuth();
  }, [setUser, setAuthenticated]);

  return <>{children}</>;
}