// import { makeAutoObservable } from 'mobx';
import { message } from 'antd';
// import { apis, LoginApiParams } from '@/apis';
// import LocalStorage from '@/LocalStorage';
// import router from '@/router';
import { State, ReadonlyState, StateAction, LoginStore } from './types';
import { useState } from 'react'
// 定义状态
const stateGenerator = (): ReadonlyState => ({
    buttonLoading: false,
    tenantEnabled: true,
    tenantEnabledList: [],
    captchaData: {
        uuid: '',
        img: ''
    }
});

// 修改状态
const stateActionsGenerator = (state: State): StateAction => {
    return {
        setButtonLoading: (loading) => {
            state.buttonLoading = loading;
        },
        setCaptchaData: (data: any) => {
            state.captchaData = data
        },
        setTenantEnabled: (data: any) => {
            state.tenantEnabled = data.tenantEnabled
            state.tenantEnabledList = data.voList.map((item: any) => {
                return {
                    value: item.tenantId,
                    label: item.companyName,
                    domain: item.domain,
                }
            })
        }
    };
};

// 使用仓库
const useLoginStore = (): any => {
    // const state = makeAutoObservable(stateGenerator());
    // const actions = stateActionsGenerator(state);

    // const api = {
    //     // 登录
    //     login: async (data: LoginApiParams, remember: boolean) => {
    //         actions.setButtonLoading(true);
    //         try {
    //             const res = await apis.login({
    //                 ...data,
    //             });
    //             const info = res.data;
    //             if (remember) {// 记住密码
    //                 LocalStorage.setAccountPassword({
    //                     account: data.username,
    //                     password: data.password,
    //                 });
    //             } else {// 不记住密码
    //                 LocalStorage.setAccountPassword(undefined);
    //             }
    //             // 首次登陆，重置菜单类型
    //             LocalStorage.setMenuType(1);
    //             LocalStorage.setToken(info.access_token);
    //             // 获取用户详细信息（permissions,role, user）
    //             const resuser = await apis.fetchUserInfo();
    //             console.log('resUserInfo',resuser)
    //             if (resuser.code === 200) {
    //                 const resUserInfo = resuser.data;
    //                 LocalStorage.setPermissions(resUserInfo.permissions);
    //                 LocalStorage.setUserInfo({
    //                     id: resUserInfo.user.userId,
    //                     name: resUserInfo.user.nickName,
    //                     tenantId: resUserInfo.user.tenantId,
    //                 });
    //                 // LocalStorage.setRoles(resUserInfo.roles);
    //                 // if (!LocalStorage.getStatusFlag('deepseek:application:list') &&
    //                 //     !LocalStorage.getStatusFlag('deepseek:knowledge:list') &&
    //                 //     !LocalStorage.getStatusFlag('deepseek:dialog:list') &&
    //                 //     !LocalStorage.getStatusFlag('system:audit:list')) {
    //                 //     message.error('权限不足，请联系管理员');
    //                 //     LocalStorage.clear();
    //                 //     router.navigate({ pathname: '/login' }, { replace: true });
    //                 //     return;
    //                 // }
    //                 // if (LocalStorage.getStatusFlag('/')) {
    //                     router.navigate({ pathname: '/' }, { replace: true });
    //                 // } else {
    //                 //     router.navigate({ pathname: '/404' }, { replace: true });
    //                 // }
    //                 message.success('登录成功');
    //             }
    //         } catch (error: any) {
    //             LocalStorage.clear();
    //             message.error(error.msg);
    //             api.captchaImage()
    //         } finally {
    //             actions.setButtonLoading(false);
    //         }
    //     },
    //     // 验证码
    //     captchaImage: async () => {
    //         console.log('验证码图片加载')
    //         try {
    //             const res = await apis.captchaImage();
    //             actions.setCaptchaData(res?.data || {});
    //             return res;
    //         } catch (error: any) {
    //             console.log('error', error)
    //             message.error(error);
    //         }
    //     }
    // }

    // // 点击登录
    // const onClickLogin: LoginStore['onClickLogin'] = async (data, remember) => {
    //     // 登录
    //     await api.login(data, remember);
    // }
    // // 切换验证码
    // const onCaptchaImage = async () => {
    //     await api.captchaImage();
    // }



    // // 初始渲染
    // const init: LoginStore['init'] = async (form) => {
    //     api.captchaImage();
    //     const res = await apis.getTenantList(false)
    //     console.log('res----', res.data)
    //     if (res.data.tenantEnabled) {
    //         actions.setTenantEnabled(res.data)
    //         form.setFieldsValue({
    //             tenantId: res.data?.tenantEnabled ? res.data?.voList[0].tenantId : null,
    //         });
    //     }
    //     const accountPassword = LocalStorage.getAccountPassword();
    //     if (accountPassword) {
    //         form.setFieldsValue({
    //             account: accountPassword.account,
    //             password: accountPassword.password,
    //             remember: true,
    //             tenantId: res.data?.tenantEnabled ? res.data?.voList[0].tenantId : null,
    //         });
    //     }
    // }

    // // 状态重置
    // const reset: LoginStore['reset'] = () => {
    //     const initialButtonLoading = stateGenerator().buttonLoading;

    //     actions.setButtonLoading(initialButtonLoading);
    // }


    return {
        // state,
        // onClickLogin,
        // onCaptchaImage,
        // init,
        // reset
    };
};

export default useLoginStore();
