package com.suno.android.gating.statsig sealed class ParameterStoreAccessor( val parameterStoreName: ParameterStoreName, val parameterName: String, val fallbackValue: T, ) { data object HooksFeedType : ParameterStoreAccessor( parameterStoreName = ParameterStoreName.AndroidHooks, parameterName = "feed_type", fallbackValue = FeatureValue.String(""), ) data object HooksFeedLocation : ParameterStoreAccessor( parameterStoreName = ParameterStoreName.AndroidHooks, parameterName = "feed_location", fallbackValue = FeatureValue.String("disabled"), ) data object OrpheusChatEnabled : ParameterStoreAccessor( parameterStoreName = ParameterStoreName.AndroidOrpheus, parameterName = "enable_chat", fallbackValue = FeatureValue.Boolean(false), ) data object OrpheusProjectsEnabled : ParameterStoreAccessor( parameterStoreName = ParameterStoreName.AndroidOrpheus, parameterName = "enable_projects", fallbackValue = FeatureValue.Boolean(false), ) data object AllowHookDownload : ParameterStoreAccessor( parameterStoreName = ParameterStoreName.AndroidHooks, parameterName = "allow_hook_download", fallbackValue = FeatureValue.Boolean(false), ) data object AllowHookSelfDownload : ParameterStoreAccessor( parameterStoreName = ParameterStoreName.AndroidHooks, parameterName = "allow_hook_self_download", fallbackValue = FeatureValue.Boolean(false), ) data object SongGenerationRealtimeEnabled : ParameterStoreAccessor( parameterStoreName = ParameterStoreName.AndroidSongGeneration, parameterName = "realtime_enabled", fallbackValue = FeatureValue.Boolean(false), ) data object SongGenerationPollingIntervalSeconds : ParameterStoreAccessor( parameterStoreName = ParameterStoreName.AndroidSongGeneration, parameterName = "polling_interval_seconds", fallbackValue = FeatureValue.Double(10.0), ) }