import { useSession, signOut } from 'next-auth/react';

interface User {
  id?: string;
  firstName?: string;
  lastName?: string;
  email?: string;
  phone?: string;
  isActive?: boolean;
  name?: string | null;
}

interface AuthContextType {
  user: User | null;
  isLoading: boolean;
  isAuthenticated: boolean;
  logout: () => Promise<void>;
  refreshUser: () => Promise<void>;
}

export function useAuth(): AuthContextType {
  const { data: session, status } = useSession();

  const user: User | null = session?.user
    ? {
        id: (session.user as any).id,
        firstName: (session.user as any).firstName,
        lastName: (session.user as any).lastName,
        email: session.user.email || '',
        name: session.user.name,
      }
    : null;

  const logout = async () => {
    await signOut({ redirect: false });
  };

  const refreshUser = async () => {
  };

  return {
    user,
    isLoading: status === 'loading',
    isAuthenticated: status === 'authenticated',
    logout,
    refreshUser,
  };
}
