plugins {
    id("com.android.library")
    id("org.jetbrains.kotlin.android")
    id("kotlin-parcelize")
}

android {
    namespace = "app.netrunner.vpn"
    compileSdk = 36

    defaultConfig {
        minSdk = 21
        // Без этого proguard-rules.pro лежит мёртвым грузом — app-модуль (где
        // реально включена минификация в release) собирает *.pro только из
        // своей собственной директории, а этот модуль в другой. Без keep-правил
        // R8 переименовывает TunnelConfig, Jackson теряет reflection-доступ к
        // конструктору и падает "Cannot construct instance of `j0.a`..." —
        // именно так и было при первом релизном (не dev) билде.
        consumerProguardFiles("proguard-rules.pro")
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = "17"
    }

    buildFeatures {
        // Начиная с AGP 8 генерация BuildConfig — opt-in per-модуль. Нужен
        // BuildConfig.DEBUG в VpnPlugin.kt (гейт debug-инспектора WebView).
        buildConfig = true
    }

    sourceSets {
        getByName("main") {
            // Добавляем папку с исходным кодом (где лежат твои uniffi .kt файлы)
            java.srcDirs("src/main/java")
            // Оставляем jniLibs для .so файлов
            jniLibs.srcDirs("src/main/jniLibs") 
        }
    }
}

dependencies {
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2")
    implementation("net.java.dev.jna:jna:5.13.0@aar")
    implementation("androidx.core:core-ktx:1.9.0")
    implementation("androidx.appcompat:appcompat:1.6.0")
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
    implementation(project(":tauri-android"))
}