import Foundation
import Localization
import SwiftUI

public enum BrandedAlertStyle: Equatable {
    enum ButtonCopy {
        case retry
        case goBack
        case okay
        case gotIt

        var displayText: String {
            switch self {
            case .retry: return L10n.FeatureBrandedAlert.retry
            case .goBack: return L10n.FeatureBrandedAlert.goBack
            case .okay: return L10n.FeatureBrandedAlert.okay
            case .gotIt: return L10n.FeatureBrandedAlert.gotIt
            }
        }
    }

    case noAlert
    case announceAlert(AnnounceAlertStyle)
    case singleButtonAlert(SingleButtonAlertStyle)
    case multiButtonAlert(MultiButtonAlertStyleUnified)
    case listAlert(ListAlertStyle)
    case featuredArtist(FeaturedArtistAlertStyle)
    case versioningAlert(VersioningAlertStyle)
    case discountAlert(DiscountAlertStyle)
    case walkthroughAlert(WalkthroughAlertStyle)
    case hookStatusAlert(HookStatusAlertStyle)

    // Convenience initializer for backwards compatibility
    public static func multiButtonAlert(_ style: MultiButtonAlertStyle) -> Self {
        return .multiButtonAlert(.v1(style))
    }
}
