/**
 * KNSDD Grup Yönetimi - Durum (State) Yönetim Modülü
 *
 * Sayfanın anlık durumunu (seçili filtreler, arama terimi vb.) yönetir
 * ve bu durumu tarayıcının yerel deposunda (localStorage) saklar.
 */
window.KNSDDGroups = window.KNSDDGroups || {};

KNSDDGroups.state = (function() {
    'use strict';

    const STORAGE_KEY = 'knsdd_group_filters';

    // Sayfa durumu için varsayılan değerler
    const defaults = {
        searchTerm: '',
        statusFilter: [],
        sortOption: 'start-asc',
        advancedFilter: 'all',
        currentPage: 1,
        perPage: 10
    };

    /**
     * Mevcut filtre durumunu yerel depodan yükler.
     * @returns {object} - Yüklenen veya varsayılan filtreler.
     */
    const loadFilters = () => {
        const saved = JSON.parse(localStorage.getItem(STORAGE_KEY)) || {};
        
        // Eski string formatını array'e dönüştür (migration)
        if (saved.statusFilter && typeof saved.statusFilter === 'string') {
            if (saved.statusFilter === 'all') {
                saved.statusFilter = [];
            } else {
                saved.statusFilter = [saved.statusFilter];
            }
        }
        
        return { 
            ...defaults,
            ...saved,
            statusFilter: Array.isArray(saved.statusFilter) ? saved.statusFilter : []
        };
    };

    /**
     * Mevcut filtre durumunu yerel depoya kaydeder.
     * @param {object} filters - Kaydedilecek filtre nesnesi.
     */
    const saveFilters = (filters) => {
        localStorage.setItem(STORAGE_KEY, JSON.stringify(filters));
    };

    // Dışarıya açılacak fonksiyonlar
    return {
        load: loadFilters,
        save: saveFilters
    };

})();
