import { create } from 'zustand'
import { Suitable, suitableApi } from '@/api/suitable'

interface SuitableState {
  // // 검색 결과 리스트
  // searchResults: Suitable[]
  // // 초기 데이터 로드
  // fetchInitializeData: () => Promise<void>
  // // 검색 결과 설정
  // setSearchResults: (results: Suitable[]) => void
  // // 검색 결과 초기화
  // resetSearchResults: () => void

  // 선택된 아이템 리스트
  selectedItems: Suitable[]
  // 선택된 아이템 추가
  addSelectedItem: (item: Suitable) => void
  // 선택된 아이템 제거
  removeSelectedItem: (itemId: number) => void
  // 선택된 아이템 모두 제거
  clearSelectedItems: () => void
}

export const useSuitableStore = create<SuitableState>((set) => ({
  // // 초기 상태
  // searchResults: [],

  // // 초기 데이터 로드
  // fetchInitializeData: async () => {
  //   const suitables = await fetchInitialSuitablee()
  //   set({ searchResults: suitables })
  // },

  // // 검색 결과 설정
  // setSearchResults: (results) => set({ searchResults: results }),

  // // 검색 결과 초기화
  // resetSearchResults: () => set({ searchResults: [] }),

  // 초기 상태
  selectedItems: [],

  // 선택된 아이템 추가 (중복 방지)
  addSelectedItem: (item) =>
    set((state) => ({
      selectedItems: state.selectedItems.some((i) => i.id === item.id) ? state.selectedItems : [...state.selectedItems, item],
    })),

  // 선택된 아이템 제거
  removeSelectedItem: (itemId) =>
    set((state) => ({
      selectedItems: state.selectedItems.filter((item) => item.id !== itemId),
    })),

  // 선택된 아이템 모두 제거
  clearSelectedItems: () => set({ selectedItems: [] }),
}))

// // 전체 데이터 초기화 함수
// async function fetchInitialSuitablee() {
//   try {
//     const suitable = await suitableApi.getList()
//     return suitable
//   } catch (error) {
//     console.error('초기 데이터 로드 실패:', error)
//     return []
//   }
// }
