import { useAuth } from "@/contexts/auth-context"
import api from "@/lib/axiosClient"
import { useChatStore } from "@/store/useChatStore";
import { ApiResponseClient, ApiResponseClient2, ApiResponseDetail } from "@/types/response";
import { Branch, Settings } from "@/types/settings";
import { useQuery } from "@tanstack/react-query"
import axios from "axios";
import { use } from "react";

export const useSetting = () => {
    const { user } = useAuth();
    return useQuery({
        queryKey:["settings"],
        queryFn:async () => await api.post<Settings>("/v1.0/setting/service/find" ,{
            email:user?.email,
            setting:1
        }).then((response) => {
            return response.data
        }).catch((error) => {
            console.log(error)
        }),
        refetchOnWindowFocus:true
    })
} 

export const useBranch = () => {
    const { setSelectedBranch }= useChatStore();
    const { user } = useAuth();
    return useQuery({
        queryKey:["branch", user?.id],
        queryFn:async () => await axios.get<ApiResponseClient2<Branch>>(`${process.env.NEXT_PUBLIC_API_HOST_CLIENT}/v1.0/services/user/branch?user_id=${user?.id}`).then((response) => {
            setSelectedBranch(response.data.data.filter(f => f.is_access).map(b => b.id));
            return response.data.data;
        }),
        refetchOnWindowFocus:true,
        enabled: !!user?.id,
    });
}