import { registerFormAPI } from "~/constants/api";
import { getPostByLang } from "~/composables/helpers/getPostByLang";

interface RegisterItem {
    id: number;
    slug: string;
    post_languages: any[];
}

export const useRegisterFormStore = defineStore("registerForm", () => {
    const registerForm = ref<Record<string, any>>({});
    const loading = ref(false);

    const fetchRegisterForm = async (
        company_id: number,
        locale: string
    ) => {
        loading.value = true;

        try {
            const res = await ifetch(registerFormAPI.get, {
                company_id: company_id,
            });

            const mapped: Record<string, any> = {};

            for (const item of Object.values(res.data) as (RegisterItem | null)[]) {
                if (!item || !item.slug) continue;

                mapped[item.slug] = getPostByLang(
                    item.post_languages || [],
                    locale
                );
            }

            registerForm.value = mapped;
        } catch (error) {
            console.error("Failed to fetch register form:", error);
        } finally {
            loading.value = false;
        }
    };

    return {
        registerForm,
        loading,
        fetchRegisterForm,
    };
});