import { createApp } from 'vue';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
import { createPinia } from 'pinia';
import App from './App.vue';
import router from './router';
import { useMainStore } from './store';
// 导入调试工具
import './utils/debug';

// 导入全局样式
import './assets/styles/global.scss';

const app = createApp(App);
const pinia = createPinia();

app.use(ElementPlus);
app.use(pinia);

// 先初始化身份验证状态（异步执行，不阻塞应用启动）
const store = useMainStore();
store.initializeAuth().catch(err => {
    console.error('[Main] 初始化登录状态失败:', err);
});

// 全局挂载pinia，用于路由守卫
window.$pinia = pinia;

// 确保在状态恢复后再挂载路由
app.use(router);

// 打印初始状态
if (import.meta.env.DEV) {
    setTimeout(() => {
        window.$debug.logUserState();
    }, 0);
}

app.mount('#app'); 