package uk.silverlabs.silverdroid.config import kotlinx.serialization.Serializable /** * Application configuration that can be customized per deployment */ @Serializable data class AppConfig( // App branding val appName: String = "SilverDROID", val appVersion: String = "1.0.0", // Target URL configuration val targetUrl: String, val showUrlBar: Boolean = false, val allowNavigation: Boolean = true, // Remote configuration val remoteConfig: RemoteConfigSettings? = null, // VPN configuration (optional) val vpn: VpnConfig? = null, // Tor configuration (optional) val tor: TorConfig? = null, // Theme customization val theme: ThemeConfig = ThemeConfig() ) @Serializable data class RemoteConfigSettings( val enabled: Boolean = true, val url: String, val authToken: String? = null, val userSpecific: Boolean = false, val refreshInterval: Long = 3600000 // 1 hour in milliseconds ) @Serializable data class VpnConfig( val enabled: Boolean = false, val autoConnect: Boolean = true, val privateKey: String, val address: String, val dns: List = emptyList(), val peers: List ) @Serializable data class PeerConfig( val publicKey: String, val endpoint: String, val allowedIps: List = listOf("0.0.0.0/0"), val persistentKeepalive: Int = 25 ) @Serializable data class TorConfig( val enabled: Boolean = false, val autoConnect: Boolean = true, val useBridges: Boolean = false, val bridges: List = emptyList(), val socksPort: Int = 9050, val controlPort: Int = 9051 ) @Serializable data class ThemeConfig( val primaryColor: String? = null, val backgroundColor: String? = null, val statusBarColor: String? = null )