import {create} from "zustand";
import * as api from "@/api/notices";

export const useNoticesStore = create((set, get) => ({
    notices: [],
    fetchNotices: async () => {
        set({error: null});
        try {
            const data = await api.listNotices();
            set({notices: data});
        } catch (error) {
            set(error);
        }
    },

    addNotice: async (notice) => {
        try {
            const newNotice = await api.createNotice(notice);
            set((state) => ({
                notices: [...state.notices, newNotice],
            }));
            return newNotice;
        } catch (error) {
            set({ error });
            return null;
        }
    },

    getNoticeById: (noticeId) => {
        return get().notices.find((notice) => String(notice.noticeId) === String(noticeId));
    },

    getAllImagesByNoticeId: async (noticeId) => {
        try {
            return await api.getAllImagesByNoticeId(noticeId);
        } catch (error) {
            console.error("Error while getting images:", error);
            return ["https://http.cat/404.jpg"];
        }
    }
}));