//
// OpenRocky — Voice-first AI Agent
// https://github.com/openrocky
//
// Developed by everettjf with the assistance of Claude Code and Codex.
// Date: 2026-03-25
// Copyright (c) 2026 everettjf. All rights reserved.
//

import Foundation

enum OpenRockyRealtimeProviderKind: String, Codable, CaseIterable, Identifiable {
    case openAI

    nonisolated var id: String { rawValue }

    nonisolated var displayName: String {
        switch self {
        case .openAI: String(localized: "OpenAI Realtime")
        }
    }

    nonisolated var defaultModel: String {
        switch self {
        case .openAI: OpenRockyOpenAIServiceFactory.defaultRealtimeModel
        }
    }

    nonisolated var suggestedModels: [String] {
        switch self {
        case .openAI:
            ["gpt-realtime-2"]
        }
    }

    nonisolated var summary: String {
        switch self {
        case .openAI:
            "End-to-end realtime voice agent with transcript, tool calling, and audio output."
        }
    }

    nonisolated var credentialTitle: String {
        switch self {
        case .openAI: String(localized: "API Key")
        }
    }

    nonisolated var credentialPlaceholder: String {
        switch self {
        case .openAI: "sk-..."
        }
    }

    nonisolated var apiKeyGuideURL: String? {
        switch self {
        case .openAI: "https://platform.openai.com/api-keys"
        }
    }

    /// Whether this voice provider requires a credential.
    nonisolated var requiresCredential: Bool {
        true
    }
}
