import Foundation

enum AppDefaults {
    static func registerDefaults() {
        UserDefaults.standard.register(defaults: [
            // Onboarding & General
            "hasCompletedOnboarding": false,
            "enableAnnouncements": true,
            "autoUpdateCheck": true,

            // Clipboard
            "restoreClipboardAfterPaste": true,
            "clipboardRestoreDelay": 2.0,
            "useAppleScriptPaste": false,

            // Audio & Media
            "isSystemMuteEnabled": true,
            "audioResumptionDelay": 0.0,
            "isPauseMediaEnabled": false,
            "isSoundFeedbackEnabled": true,

            // Recording & Transcription
            "IsTextFormattingEnabled": true,
            "IsVADEnabled": true,
            "RemoveFillerWords": true,
            "RemovePunctuation": false,
            "LowercaseTranscription": false,
            "SelectedLanguage": "en",
            "AppendTrailingSpace": true,
            "showLiveTextPreview": false,
            "RecorderType": "mini",

            // Cleanup
            "IsTranscriptionCleanupEnabled": false,
            "TranscriptionRetentionMinutes": 1440,
            "IsAudioCleanupEnabled": false,
            "AudioRetentionPeriod": 7,

            // UI & Behavior
            "IsMenuBarOnly": false,
            "powerModePersistConfig": false,
            // Hotkey
            "isMiddleClickToggleEnabled": false,
            "middleClickActivationDelay": 200,

            // Enhancement
            // Apple on-device taalmodel als primaire enhancer (lokaal, gratis,
            // geen Gemini-503's). Fallback-veilig: bij onbeschikbaarheid valt
            // het automatisch terug op het cloud-pad.
            "PreferOnDeviceEnhancement": true,
            "SkipShortEnhancement": true,
            // Standaard UIT sinds Apple on-device enhancement (~1s lokaal,
            // gratis): politoer is de ~1s waard, geen Gemini-wachttijd meer.
            // Korte dictaten (≤6 woorden) skippen nog wél via SkipShort.
            // Toggle blijft bestaan voor wie maximale snelheid wil.
            "SkipCleanEnhancement": false,
            // ≤6 woorden: woordvervanging + formatter doen het al; Gemini's
            // politoer voegt weinig toe maar kost 9-15s (timeout-gevoelig).
            "ShortEnhancementWordThreshold": 6,
            // flash-lite is normaal <3s; 15s vangt latentiepieken zonder lang
            // hangen. Retry uit: bij time-out direct door met de (al via
            // woordvervanging gecorrigeerde) tekst i.p.v. 2× wachten.
            "EnhancementTimeoutSeconds": 15,
            "EnhancementRetryOnTimeout": false,

            // Model
            "PrewarmModelOnWake": true,

        ])
    }
}
