def kotlinCoroutinesVersion = "1.10.2"

dependencies {
    implementation project(':airbyte-cdk:bulk:core:bulk-cdk-core-base')
    implementation project(':airbyte-cdk:bulk:core:bulk-cdk-core-load')

    // TODO: Separate individual format types from the core format spec
    // and migrate them to their respective toolkits, so that these
    // dependencies can be removed.
    api project(':airbyte-cdk:bulk:toolkits:bulk-cdk-toolkit-load-avro')
    api project(':airbyte-cdk:bulk:toolkits:bulk-cdk-toolkit-load-csv')
    api project(':airbyte-cdk:bulk:toolkits:bulk-cdk-toolkit-load-parquet')

    api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutinesVersion"
    api "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:$kotlinCoroutinesVersion"

    testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutinesVersion")

    testFixturesImplementation testFixtures(project(":airbyte-cdk:bulk:core:bulk-cdk-core-load"))
    testFixturesImplementation testFixtures(project(":airbyte-cdk:bulk:toolkits:bulk-cdk-toolkit-load-avro"))
    testFixturesImplementation testFixtures(project(":airbyte-cdk:bulk:toolkits:bulk-cdk-toolkit-load-csv"))
    testFixturesImplementation testFixtures(project(":airbyte-cdk:bulk:toolkits:bulk-cdk-toolkit-load-parquet"))
}

project.tasks.matching {
    it.name == 'spotbugsIntegrationTestLegacy' ||
            it.name == 'spotbugsIntegrationTest' ||
            it.name == 'spotbugsTest' ||
            it.name == 'spotbugsMain'
}.configureEach {
    enabled = false
}

test {
    systemProperties(["mockk.junit.extension.requireParallelTesting":"true"])
}
