import RealFlags

public extension ParameterStores {
    struct General: SunoStatsigParameterStore {
        public static let parameterStoreName: String = "ios-general"

        @Flag(key: "show-att-prompt", default: false, description: "Default-off flag as an off-switch while roll out ATT prompts. Currently set to `true` in the Statsig dashboard.")
        public var showAttPrompt: Bool

        @Flag(key: "deep-link-intents-v2", default: true, description: "Default-on flag for using the new DeepLinkIntens refactored logic")
        public var deepLinkIntentsV2: Bool

        @Flag(key: "start-up-orchestrator-enabled", default: false, description: "Default-off flag for enabling the new app start up sequence. This value is written to a persisted bool where it's read from, since the value is needed immediately upon app launch (so the value used at app launch always lags behind this value by one cold app launch).")
        public var startUpOrchestratorEnabled: Bool

        @Flag(key: "clerk-first-time-user-auth-flow", default: false, description: "Default-off killswitch for enhanced authentication flow including first-time user detection, full name extraction from Google Sign In, and new error handling. When disabled, uses legacy authentication behavior.")
        public var enhancedAuthenticationFlow: Bool

        @Flag(key: "braze-debug-logging", default: false, description: "Enable verbose Braze logging for debugging.")
        public var brazeDebugLogging: Bool
        
        @Flag(key: "ios-view-update-optimization", default: true, description: "Flag for the ObservedBox view update optimization")
        public var viewUpdateOptimization: Bool
        
        @Flag(key: "paywall-v2", default: true, description: "Flag for using PaywallV2")
        public var paywallV2: Bool

        public init() {}
    }
}
