import { create } from "zustand";
import { persist } from "zustand/middleware";
import type { LoginResponse, User } from "@/types/auth";

interface AuthState {
  token: string | null;
  refreshToken: string | null;
  user: User | null;
  connecte: (session: LoginResponse) => void;
  deconnecte: () => void;
}

export const useAuthStore = create<AuthState>()(
  persist(
    (set) => ({
      token: null,
      refreshToken: null,
      user: null,
      connecte: (session) =>
        set({ token: session.token, refreshToken: session.refreshToken, user: session.user }),
      deconnecte: () => set({ token: null, refreshToken: null, user: null }),
    }),
    { name: "pubago-auth" },
  ),
);
