package com.bytelyst.platform

/**
 * Product-specific configuration for the ByteLyst platform SDK.
 *
 * Each Android app creates one instance at startup and passes it to
 * all SDK components via DI (Hilt, Koin, or manual).
 */
data class BLPlatformConfig(
    /** Product identifier (e.g., "chronomind", "lysnrai", "mindlyst"). */
    val productId: String,

    /** Platform-service base URL (e.g., "http://localhost:4003/api"). */
    val baseUrl: String,

    /** Platform string for telemetry (e.g., "android", "wear_os"). */
    val platform: String = "android",

    /** Channel string for telemetry (e.g., "native", "keyboard"). */
    val channel: String = "native",

    /** Application ID / bundle ID (e.g., "com.chronomind.app"). */
    val applicationId: String,

    /** App version string for telemetry headers (e.g., "1.2.0"). */
    val appVersion: String = "0.0.0",

    /** OS version string for telemetry headers (e.g., "14"). */
    val osVersion: String = "unknown",

    /** Request timeout in milliseconds. Default: 15 seconds. */
    val timeoutMs: Long = 15_000L,
)
