import {Preferences} from "@capacitor/preferences";

export default defineNuxtPlugin(() => {
    const config = useRuntimeConfig()

    const api = $fetch.create({
        baseURL: config.public.apiBase,/*"http://192.168.1.227:3100" "https://backend.fedeo.io"*/
        credentials: "include",
        async onRequest({options}) {
            // Token aus Cookie holen
            let token: string | null | undefined = ""
            if (await useCapacitor().getIsNative()) {
                const {value} = await Preferences.get({key: 'token'});
                token = value
            } else {
                token = useCookie("token").value
            }


            // Falls im Request explizit ein anderer JWT übergeben wird → diesen verwenden
            if (options.context && (options.context as any).jwt) {
                token = (options.context as any).jwt
            }

            if (token) {
                options.headers = {
                    ...options.headers,
                    Authorization: `Bearer ${token}`,
                }
            }
        }
    })

    return { provide: { api } }
})