/*
    작성자 : 박지윤
    작성일 : 2025-02-04
    수정자 :
    수정일 :
    설명   : 로그인 상태, 로그아웃
*/
import { ref, computed } from 'vue';
import { defineStore } from 'pinia';
import $api from "@api";

export const useAuthStore = defineStore('auth', () => {
    const user = ref(null);

    // 로그인 여부 확인
    const isAuthenticated = computed(() => user.value !== null);

    // 로그인 상태 확인
    const checkAuthStatus = async () => {
        const response = await $api.get('user/isLogin');
        if (response.data.status === "OK" && response.data.data) {
            user.value = response.data.data;
        } else {
            user.value = null;
        }
    };

    // 로그아웃
    const logout = async () => {

        const response = await $api.get('user/logout');

        // 로그아웃 성공 시 사용자 상태 초기화
        if (response.data.status === "OK") {
            user.value = null;
            return true;
        } else {
            console.error("로그아웃 실패:", response.data.data);
            return false;
        }

    };

    return {
        user,
        isAuthenticated,
        checkAuthStatus,
        logout
    };
});
