import { create } from "zustand";
import { RepositoryRemote } from "../services";
import { alerts } from "../utils/alerts";

export const useNewsStore = create((set) => ({
  news: [],
  newsDetail: {},
  postCategories:[],
  loading: false,
  apiNews: async (onSuccess, onFail) => {
    try {
      set({ loading: true });
      const response = await RepositoryRemote.news.apiNews();
      set ({news: response.data.data})
      onSuccess(response);
    } catch (error) {
      onFail(error)
    }
    set({ loading: false });
  },

  getPostCategories: async(onSuccess, onFail) => {
    try {
      set({ loading: true });
      const response = await RepositoryRemote.news.getPostCategories();
      console.log(response);
      set ({postCategories: response.data.data})
      onSuccess(response);
    }catch (error) {
      onFail(error)
    }
    set({ loading: false})
  },

  getAllPost: async(onSuccess, onFail) => {
    try {
      set({ loading: true });
      const response = await RepositoryRemote.news.getAllPost();
      set ({news: response.data.data.data})
      onSuccess(response);
    }catch (error) {
      onFail(error)
    }
    set({ loading: false})
  },

  getNewsDetail: async(post, onSuccess, onFail) => {
    try {
      set({ loading: true });
      const response = await RepositoryRemote.news.getNewsDetail(post);
      set ({newsDetail: response.data.data})
      onSuccess(response);
    }catch (error) {
      onFail(error)
    }
    set({ loading: false})
  },

  newsByCategory: async(post, onSuccess, onFail) => {
    try {
      set({ loading: true });
      const response = await RepositoryRemote.news.newsByCategory(post);
      set ({news: response.data.data.data})
      onSuccess(response);
    }catch (error) {
      onFail(error)
    }
    set({ loading: false})
  },
}));
