//
//  AppConstants.swift
//  TheNoiseClock
//
//  Created by Matt Bruce on 9/7/25.
//

import Foundation

/// App-wide constants and configuration values
enum AppConstants {
    
    // MARK: - App Information
    static let appName = "TheNoiseClock"
    static let minimumIOSVersion = "18.0"
    
    // MARK: - Storage Keys
    enum StorageKeys {
        static let clockStyle = "ClockStyle_JSON"
        static let savedAlarms = "SavedAlarms"
    }
    
    // MARK: - Timer Intervals
    enum TimerIntervals {
        static let second = 1.0
        static let minute = 60.0
    }
    
    // MARK: - Animation Durations
    enum AnimationDurations {
        static let short = 0.25
        static let medium = 0.3
        static let long = 0.4
        static let bouncy = 0.4
    }
    
    // MARK: - Persistence Delays
    enum PersistenceDelays {
        static let clockStyle = 0.5
        static let alarms = 0.3
    }
    
    // MARK: - Display Mode
    enum DisplayMode {
        static let longPressDuration = 0.6
    }
    
    // MARK: - Default Values
    enum Defaults {
        static let digitColorHex = "#FFFFFF"
        static let backgroundColorHex = "#000000"
        static let glowIntensity = 0.6
        static let digitScale = 1.0
        static let clockOpacity = 0.5
        static let overlayOpacity = 0.5
        static let minFontSize = 20.0
        static let maxFontSize = 500.0
        static let safeInset = 4.0 // Reasonable safe inset
    }
    
    // MARK: - System Sounds
    enum SystemSounds {
        static let defaultSound = "digital-alarm.caf"
        static let availableSounds = ["default", "bell", "chimes", "ding", "glass", "silence"]
    }
}
