import Foundation

// MARK: - TourCatalog

/// Static registry of all tours defined in the app.
/// Strings use German text as keys (consistent with project xcstrings convention).
/// New tours are added as static properties and included in `all`.
enum TourCatalog {

    // MARK: Onboarding Tour

    static let onboarding = Tour(
        id: .onboarding,
        title: "App-Einführung",
        steps: [
            TourStep(
                title: "Willkommen bei nahbar",
                body: "nahbar hilft dir, echte Verbindungen zu pflegen – ohne Stress, ohne Algorithmen.",
                target: nil,
                preferredCardPosition: .center
            ),
            TourStep(
                title: "Deine Menschen im Mittelpunkt",
                body: "Füge Personen hinzu, die dir wichtig sind. Notiere Interessen, Gesprächsthemen und was euch verbindet.",
                target: .addContactButton,
                preferredCardPosition: .below
            ),
            TourStep(
                title: "Momente festhalten",
                body: "Tippe auf eine Person und erfasse Treffen, Gespräche oder Erlebnisse – so weißt du immer, worüber ihr das letzte Mal geredet habt.",
                target: .contactCardFirst,
                preferredCardPosition: .below
            ),
            TourStep(
                title: "Plane das Nächste",
                body: "Tippe auf '+ Moment', um Treffen oder Gespräche festzuhalten – so weißt du immer, worüber ihr das letzte Mal geredet habt.",
                target: .addMomentButton,
                preferredCardPosition: .below
            ),
            TourStep(
                title: "Todos anlegen",
                body: "Mit '+ Todo' planst du konkrete Aufgaben für diese Person – mit optionaler Erinnerung, damit nichts vergessen wird.",
                target: .addTodoButton,
                preferredCardPosition: .below
            ),
            TourStep(
                title: "Sanfte Erinnerungen",
                body: "nahbar erinnert dich, wenn du lange nichts von jemandem gehört hast. Du entscheidest, wie oft.",
                target: nil,
                preferredCardPosition: .center
            ),
            TourStep(
                title: "Einblicke, wenn du willst",
                body: "Optionale KI-Analyse zeigt Muster in deinen Verbindungen. Den Persönlichkeitstest findest du in den Einstellungen – er macht nahbar noch persönlicher.",
                target: nil,
                preferredCardPosition: .center
            ),
        ],
        minAppVersion: "1.0",
        triggerMode: .manualOrFirstLaunch
    )

    // MARK: Registry

    /// All tours known to the app. Order matters for display in Settings.
    static let all: [Tour] = [onboarding]

    /// Looks up a tour by its ID.
    static func tour(for id: TourID) -> Tour? {
        all.first { $0.id == id }
    }
}
