import Foundation
import Localization

public extension Tooltip {
    enum Preset: CaseIterable {
        case remasterLaunch
        case extendOmniPlayerLaunch
        case audioCreateStyle
        case videoSongArtWalkthroughRedirect
        case newModelAnnouncement

        var textCopy: Tooltip {
            switch self {
            case .remasterLaunch:
                return .init(
                    title: L10n.FeaturePlayer.remasterTooltipTitle,
                    subtitle: L10n.FeaturePlayer.remasterTooltipSubtitle,
                    buttonTitle: ButtonCopy.gotIt.displayText,
                    configuration: .moreButtonOnOmniPlayer
                )

            case .extendOmniPlayerLaunch:
                return .init(
                    title: L10n.FeaturePlayer.extendOmniPlayerTooltipTitle,
                    subtitle: L10n.FeaturePlayer.extendOmniPlayerTooltipSubtitle,
                    buttonTitle: ButtonCopy.gotIt.displayText,
                    configuration: .moreButtonOnOmniPlayer
                )

            case .audioCreateStyle:
                return .init(
                    title: L10n.FeatureCreateClip.audioTooltipTitle,
                    subtitle: L10n.FeatureCreateClip.audioTooltipMessage,
                    buttonTitle: ButtonCopy.gotIt.displayText,
                    configuration: .audioCreateStyle
                )

            case .videoSongArtWalkthroughRedirect:
                return .init(
                    title: L10n.FeatureClipList.videoSongArtFromWalktooltipTooltipTitle,
                    subtitle: L10n.FeatureClipList.videoSongArtFromWalkthroughTooltipSubtitle,
                    buttonTitle: ButtonCopy.gotIt.displayText,
                    configuration: .moreButtonOnOmniPlayer
                )

            case .newModelAnnouncement:
                return .init(
                    title: L10n.FeatureCreateClip.newModelTooltipTitle,
                    subtitle: L10n.FeatureCreateClip.newModelTooltipSubtitle,
                    buttonTitle: L10n.FeatureCreateClip.newModelTooltipButton,
                    badgeLabel: L10n.FeatureCreateClip.newModelTooltipBadge,
                    configuration: .newModelAnnouncement
                )
            }
        }
    }
}
