'use client';

import { create } from 'zustand';

interface OfflineStore {
  isOnline: boolean;
  pendingSync: number;
  setOnline: (isOnline: boolean) => void;
  incrementPendingSync: () => void;
  decrementPendingSync: () => void;
  resetPendingSync: () => void;
}

export const useOfflineStore = create<OfflineStore>((set) => ({
  isOnline: true,
  pendingSync: 0,

  setOnline: (isOnline) => set({ isOnline }),
  incrementPendingSync: () =>
    set((state) => ({ pendingSync: state.pendingSync + 1 })),
  decrementPendingSync: () =>
    set((state) => ({ pendingSync: Math.max(0, state.pendingSync - 1) })),
  resetPendingSync: () => set({ pendingSync: 0 }),
}));
