import { defineStore } from "pinia";
export interface Company {
    id: number;
    company_name: string;
    logo?: string; // optional
}

export const useCompanyStore = defineStore("getCompany", {
    state: () => ({
        lists: [] as Company[],
        selectedCompanyId: 2 as number | null,
        selectedCompanyType: null as number | null,
        selectedCompany: null as Company | null,
        loaded: false,
    }),
    getters: {
        // selectCompanyData: (state) =>
        //     state.lists.find((c) => c.id === state.selectedCompanyId) ?? state.selectedCompany,
        selectCompanyData: (state) => state.selectedCompany,
        isSelectedCompany: (state) =>
            state.selectedCompany?.id === state.selectedCompanyId,

    },
    actions: {
        setData(data: Company[]) {
            this.lists = data;
        },
        // setCompanyData(data: Company) {
        //     if (data.id === this.selectedCompanyId) {
        //         this.selectedCompany = data
        //     }
        // },
        setCompanyType(type: number){
            this.selectedCompanyType = type
        },
        setCompanyData(data: Company) {
            this.selectedCompany = data;
            this.selectedCompanyId = data.id; // keep them synced
        },

        selectCompany(id: number) {
            this.selectedCompanyId = id;
            if (process.client) {
                const cookie = useCookie<number | null>("company_id", {
                    sameSite: "lax",
                    maxAge: 60 * 60 * 24 * 30,
                });
                cookie.value = id;
                // 👈 ADD THIS
            }
        },
        /** Restore on refresh */
        initFromCookie() {
            const cookie = useCookie<number | null>("company_id");
            if (cookie.value) {
                this.selectedCompanyId = cookie.value;
            }
        },
    },
});
