package ru.forbion.f7cloud.feature.tasks

import android.content.Context

/**
 * Персист настроек Задач в SharedPreferences (по образцу `CalendarPrefsStore`).
 * Сейчас — режим видимости умных коллекций (3-state), переживает перезапуск.
 */
class TasksPrefsStore(context: Context) {
    private val prefs = context.applicationContext.getSharedPreferences(PREFS, Context.MODE_PRIVATE)

    fun getVisibility(): SmartListVisibility {
        val modes = SmartListKey.entries.mapNotNull { key ->
            val raw = prefs.getString(keyMode(key), null) ?: return@mapNotNull null
            runCatching { SmartListMode.valueOf(raw) }.getOrNull()?.let { key to it }
        }.toMap()
        return SmartListVisibility.of(modes)
    }

    fun setMode(key: SmartListKey, mode: SmartListMode) {
        prefs.edit().putString(keyMode(key), mode.name).apply()
    }

    companion object {
        private const val PREFS = "f7_tasks_prefs"

        private fun keyMode(key: SmartListKey) = "smart_mode::${key.name}"
    }
}
