/** 앱 전역 상태 */
import products from '../data/index.js';
import { STATUS_META } from './config.js';

export const productsData = products;

export const state = {
    currentPage: 1,
    activeCategories: new Set(['All']),
    visibleProducts: [], // 초기값은 빈 배열로 두고 main.js나 filter.js에서 첫 계산
    searchKeyword: '',
    viewMode: 'grid',
    selectedIds: new Set(JSON.parse(sessionStorage.getItem('selectedProductIds') || '[]')),
    activeTags: new Set([]), // 선택된 태그들을 저장 (비어있으면 전체 노출)
    // visible이 true인 상태만 초기 활성 필터로 저장
    activeStatuses: new Set(
        Object.entries(STATUS_META)
            .filter(([_, meta]) => meta.isSystemVisible && meta.isDefaultActive)
            .map(([status]) => status),
    ),
};

// 선택 내역이 변경될 때마다 세션 스토리지에 저장하는 헬퍼 함수
export function saveSelection() {
    sessionStorage.setItem('selectedProductIds', JSON.stringify(Array.from(state.selectedIds)));
}
