import { create } from 'zustand'
import { createJSONStorage, persist } from 'zustand/middleware'

export type user = {
  _id: string
  email: string
  firstName: string
  lastName: string
  middleName: string
  role: string
  organizationId?: string
}

type userState = {
  user: user | null
  addUser: (user: user) => void
  clearUser: () => void
}

export const useUser = create<userState>()(
  persist(
    (set, get) => ({
      user: null,
      addUser: (user) =>
        set((state) => {
          return { user: user }
        }),

      clearUser: () => set({ user: null }),
    }),

    {
      name: 'user',
      storage: createJSONStorage(() => localStorage),
    }
  )
)
