import Foundation
import HealthKit
import SFSafeSymbols

extension HKWorkoutActivityType {

    func icon(indoor: Bool) -> SFSymbol {
        switch self {
        case .americanFootball:
            return .figureAmericanFootball
        case .archery:
            return .figureArchery
        case .australianFootball:
            return .figureAustralianFootball
        case .badminton:
            return .figureBadminton
        case .baseball:
            return .figureBaseball
        case .basketball:
            return .figureBasketball
        case .bowling:
            return .figureBowling
        case .boxing:
            return .figureBoxing
        case .climbing:
            return .figureClimbing
        case .cricket:
            return .figureCricket
        case .crossTraining:
            return .figureCrossTraining
        case .curling:
            return .figureCurling
        case .cycling:
            return indoor ? .figureIndoorCycle : .figureOutdoorCycle
        case .dance:
            return .figureDance
        case .danceInspiredTraining:
            return .figurePlay
        case .elliptical:
            return .figureElliptical
        case .equestrianSports:
            return .figureEquestrianSports
        case .fencing:
            return .figureFencing
        case .fishing:
            return .figureFishing
        case .functionalStrengthTraining:
            return .figureStrengthtrainingFunctional
        case .golf:
            return .figureGolf
        case .gymnastics:
            return .figureGymnastics
        case .handball:
            return .figureHandball
        case .hiking:
            return .figureHiking
        case .hockey:
            return .figureHockey
        case .hunting:
            return .figureHunting
        case .lacrosse:
            return .figureLacrosse
        case .martialArts:
            return .figureMartialArts
        case .mindAndBody:
            return .figureMindAndBody
        case .mixedMetabolicCardioTraining:
            return .figureMixedCardio
        case .paddleSports:
            return .oar2Crossed
        case .play:
            return .figurePlay
        case .preparationAndRecovery:
            return .figureCooldown
        case .racquetball:
            return .figureRacquetball
        case .rowing:
            return .figureRower
        case .rugby:
            return .figureRugby
        case .running:
            return .figureRun
        case .sailing:
            return .figureSailing
        case .skatingSports:
            return .figureSkating
        case .snowSports:
            return .figureSnowboarding
        case .soccer:
            return .figureSoccer
        case .softball:
            return .figureSoftball
        case .squash:
            return .figureSquash
        case .stairClimbing:
            return .figureStairStepper
        case .surfingSports:
            return .figureSurfing
        case .swimming:
            return indoor ? .figurePoolSwim : .figureOpenWaterSwim
        case .tableTennis:
            return .figureTableTennis
        case .tennis:
            return .figureTennis
        case .trackAndField:
            return .figureTrackAndField
        case .traditionalStrengthTraining:
            return .figureStrengthtrainingTraditional
        case .volleyball:
            return .figureVolleyball
        case .walking:
            return .figureWalk
        case .waterFitness:
            return .figureWaterFitness
        case .waterPolo:
            return .figureWaterpolo
        case .waterSports:
            return .figureWaterFitness
        case .wrestling:
            return .figureWrestling
        case .yoga:
            return .figureYoga
        case .barre:
            return .figureBarre
        case .coreTraining:
            return .figureCoreTraining
        case .crossCountrySkiing:
            return .figureSkiingCrosscountry
        case .downhillSkiing:
            return .figureSkiingDownhill
        case .flexibility:
            return .figureFlexibility
        case .highIntensityIntervalTraining:
            return .figureHighintensityIntervaltraining
        case .jumpRope:
            return .figureJumprope
        case .kickboxing:
            return .figureKickboxing
        case .pilates:
            return .figurePilates
        case .snowboarding:
            return .figureSnowboarding
        case .stairs:
            return .figureStairs
        case .stepTraining:
            return .figureStepTraining
        case .wheelchairWalkPace:
            return .figureRoll
        case .wheelchairRunPace:
            return .figureRollRunningpace
        case .taiChi:
            return .figureTaichi
        case .mixedCardio:
            return .figureMixedCardio
        case .handCycling:
            return .figureHandCycling
        case .discSports:
            return .figureDiscSports
        case .fitnessGaming:
            return .gamecontroller
        case .cardioDance:
            return .figureDance
        case .socialDance:
            return .figureDance
        case .pickleball:
            return .figurePickleball
        case .cooldown:
            return .figureCooldown
        case .swimBikeRun:
            return .figureRunSquareStack
        case .transition:
            return .arrowshapeRight
        case .underwaterDiving:
            return .waterWavesAndArrowDown
        case .other:
            return .dumbbell
        @unknown default:
            return .dumbbell
        }
    }
}
