/**
 * 应用启动时用户属性设置Hook
 * 确保在应用启动时为用户设置GA属性
 */

import { useEffect } from 'react';
import { getCurrentUser, isAuthenticated } from '@/lib/auth';
import { setUserProperties } from '@/utils/analytics';

/**
 * 应用启动时设置用户GA属性
 */
export const useAppStartupAnalytics = () => {
    useEffect(() => {
        const initializeUserAnalytics = () => {
            // 检查用户是否已认证
            if (!isAuthenticated()) {
                console.log('用户未认证，跳过GA属性设置');
                return;
            }

            // 获取本地存储的用户数据
            const currentUser = getCurrentUser();
            if (!currentUser || !currentUser.id) {
                console.log('本地用户数据不存在，跳过GA属性设置');
                return;
            }

            try {
                // 设置应用启动时的用户属性
                // 基于实际userData结构: {"id":"8f61686734d340d0820f0fe980368629","userId":"8f61686734d340d0820f0fe980368629","username":"Orange","email":"moviflow68@test.com","isActive":1,"authType":"LOCAL","lastLogin":"2025-09-28T16:28:51.870731"}
                setUserProperties(currentUser.id, {
                    // 基础用户信息
                    user_id: currentUser.id,
                    email: currentUser.email,
                    username: currentUser.username,
                    
                    // 认证信息
                    auth_type: currentUser.authType || 'LOCAL',
                    is_active: currentUser.isActive || 1,
                    
                    // 应用启动信息
                    last_login: currentUser.lastLogin || new Date().toISOString(),
                    
                    // 用户状态
                    user_status: currentUser.isActive === 1 ? 'active' : 'inactive',
                    
                    // 设备信息
                    user_agent: navigator.userAgent,
                    screen_resolution: `${screen.width}x${screen.height}`,
                    language: navigator.language,
                    timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
                    
                    // 会话信息
                    session_id: `${currentUser.id}_${Date.now()}`,
                });
            } catch (error) {
                console.error('❌ 应用启动时GA用户属性设置失败:', error);
            }
        };

        // 延迟执行，确保应用完全加载
        const timer = setTimeout(initializeUserAnalytics, 1000);
        
        return () => clearTimeout(timer);
    }, []);
};
