import { create } from 'zustand';

interface EventCatalogResourcesStore {
    resources: any[]
    setResources: (resources: any[]) => void;
    studioFilesFromEventCatalogDirectory: { id: string, creationDate: string }[]
    setStudioFilesFromEventCatalogDirectory: (studioFilesFromEventCatalogDirectory: { id: string, creationDate: string }[]) => void;
    templates: any[]
    setTemplates: (templates: any[]) => void;
}

/**
 * This store is used for EventCatalog Resources on the file system.
 */
export const useEventCatalogResourcesStore = create<EventCatalogResourcesStore>((set, get) => ({
    resources: [],
    setResources: (resources: any[]) => set({ resources }),
    getResources: () => get().resources,
    studioFilesFromEventCatalogDirectory: [],
    setStudioFilesFromEventCatalogDirectory: (studioFilesFromEventCatalogDirectory: { id: string, creationDate: string }[]) => set({ studioFilesFromEventCatalogDirectory }),
    getStudioFilesFromEventCatalogDirectory: () => get().studioFilesFromEventCatalogDirectory,
    templates: [],
    setTemplates: (templates: any[]) => set({ templates }),
    getTemplates: () => get().templates,
}));