//
//  HapticFeedback.swift
//  lichunWebsocket
//
//  Haptic feedback utility functions with cozy patterns
//

import UIKit

/// Triggers a medium-intensity haptic feedback
func hapticFeedback() {
    let impact = UIImpactFeedbackGenerator(style: .medium)
    impact.impactOccurred()
}

/// Triggers a haptic feedback with a specific style
func hapticFeedback(style: UIImpactFeedbackGenerator.FeedbackStyle) {
    let impact = UIImpactFeedbackGenerator(style: style)
    impact.impactOccurred()
}

/// Triggers a notification haptic feedback
func hapticNotification(type: UINotificationFeedbackGenerator.FeedbackType) {
    let generator = UINotificationFeedbackGenerator()
    generator.notificationOccurred(type)
}

// MARK: - Cozy Haptic Patterns

enum CozyHapticStyle {
    case cozyTap        // Ultra-light, gentle
    case successGlow    // Light tap + success notification
    case celebration    // Multiple quick taps
}

func performCozyHaptic(_ style: CozyHapticStyle) {
    switch style {
    case .cozyTap:
        let generator = UIImpactFeedbackGenerator(style: .soft)
        generator.impactOccurred()

    case .successGlow:
        let impact = UIImpactFeedbackGenerator(style: .light)
        impact.impactOccurred()

        DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
            let notification = UINotificationFeedbackGenerator()
            notification.notificationOccurred(.success)
        }

    case .celebration:
        let generator = UIImpactFeedbackGenerator(style: .light)
        for i in 0..<3 {
            DispatchQueue.main.asyncAfter(deadline: .now() + Double(i) * 0.1) {
                generator.impactOccurred()
            }
        }
    }
}
