import { create } from "zustand";
import { loginApi, logoutApi ,registerApi ,  googleLoginApi } from "../services/authApi";
import { myHospitalsApi } from "../services/hospial";



interface Hospital {
  _id: string;
  hospitalName: string;
  isDefault?: boolean;
}

interface HospitalState {
  hospitals: Hospital[];
  loading: boolean;
  error: string | null;

  fetchHospitals: () => Promise<void>;
  setDefaultHospital: (hospitalId: string) => void;
}

export const useHospitalStore = create<HospitalState>((set) => ({
  hospitals: [],
  loading: false,
  error: null,

  fetchHospitals: async () => {
  try {
    set({ loading: true });

    const response = await myHospitalsApi();

    set({
      hospitals: response?.data || [],
      loading: false,
    });
  } catch (error: any) {
    set({
      loading: false,
      error:
        error?.response?.data?.msg ||
        error?.message ||
        "Failed to fetch hospitals",
    });
  }
},

  setDefaultHospital: (hospitalId: string) => {
    set((state) => ({
      hospitals: state.hospitals.map((hospital) =>
        hospital._id === hospitalId ? { ...hospital, isDefault: true } : { ...hospital, isDefault: false }
      ),
    }));
  },
}));

