import { z as zod } from "zod";
const scriptEntry = zod.union([
    zod.string().min(1, 'Script code is required'),
    zod.object({
        code: zod.string().min(1, 'Script code is required'),
        type: zod.string().optional(),
    }),
]);

// export const marketingAndSchemaScriptsShape = {
//     headScripts: zod.record(scriptEntry).optional(),
//     bodyScripts: zod.record(scriptEntry).optional(),
// };
import { QueryKey, QueryClient } from "@tanstack/react-query";

export const updateQueryData = (
    queryClient: QueryClient,
    apiKey: any,
    data: any,
    response: any
) => {
    queryClient.setQueryData(apiKey, (existingData: any) => {
        const newData = { ...data, ...response.requestedData };

        if (data?._id) {
            const index = existingData?.requestedData.findIndex(
                (item: any) => item._id === data._id
            );
            if (index !== -1) {
                existingData.requestedData[index] = response?.requestedData;
            } else {
                existingData?.requestedData.unshift(newData);
            }
        } else {
            existingData?.requestedData.unshift(response?.requestedData);
        }
        return { ...existingData };
    });
};

export const deleteQueryData = (
    queryClient: QueryClient,
    apiKey: QueryKey,
    deletedId: any,
) => {
    queryClient.setQueryData(apiKey, (existingData: any) => {
        const updatedueryData = existingData?.requestedData.filter((data: any) => data._id !== deletedId);
        return { ...existingData, requestedData: updatedueryData };
    });
};