/**
 * ae_events_stores__badges.svelte.ts
 *
 * Svelte 5 PersistedState store for Badge module local config.
 * Replaces the `events_loc.badges` sub-object from the Svelte 4 persisted store.
 *
 * localStorage key: 'ae_badges_loc'
 * Version gate:     AE_BADGES_LOC_VERSION in store_versions.ts
 *
 * Usage:
 *   import { badges_loc } from '$lib/stores/ae_events_stores__badges.svelte';
 *   badges_loc.current.fulltext_search_qry_str   // read
 *   badges_loc.current.search_version++           // write
 */
import { PersistedState } from 'runed';
import { badges_loc_defaults } from './ae_events_stores__badges_defaults';

// Custom deserializer merges stored JSON with defaults so that new fields added
// after a user's first session get their default values rather than undefined.
export const badges_loc = new PersistedState('ae_badges_loc', badges_loc_defaults, {
    serializer: {
        serialize: JSON.stringify,
        deserialize: (raw: string) => ({ ...badges_loc_defaults, ...JSON.parse(raw) })
    }
});
