import { useEffect } from 'react';
import { useAuthStore } from '@common/store/authStore';
import { API_BASE_URL } from '@common/services/api';

/**
 * 서브탭 진입 시 감사 로그를 기록하는 훅.
 * App.tsx의 탭 레벨 TAB_VIEW와 함께, 서브탭 레벨 SUBTAB_VIEW를 기록한다.
 *
 * N-depth 지원: 콜론 구분 경로 (예: 'aerial:media', 'admin:users', 'a:b:c:d')
 *
 * @param featureId - 콜론 구분 리소스 경로
 */
export function useFeatureTracking(featureId: string) {
  const isAuthenticated = useAuthStore((s) => s.isAuthenticated);

  useEffect(() => {
    if (!isAuthenticated || !featureId) return;
    const blob = new Blob([JSON.stringify({ action: 'SUBTAB_VIEW', detail: featureId })], {
      type: 'text/plain',
    });
    navigator.sendBeacon(`${API_BASE_URL}/audit/log`, blob);
  }, [featureId, isAuthenticated]);
}
