plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.kotlin.spring) alias(libs.plugins.kotlin.jpa) alias(libs.plugins.spring.dependency.management) } description = "vibe_erp persistence layer — JPA, multi-tenancy, Liquibase, audit. INTERNAL." java { toolchain { languageVersion.set(JavaLanguageVersion.of(21)) } } kotlin { jvmToolchain(21) compilerOptions { freeCompilerArgs.add("-Xjsr305=strict") } } // All-open and JPA plugins make Kotlin classes inheritable & non-final so // Hibernate can proxy them. Without this, every entity needs `open class`. allOpen { annotation("jakarta.persistence.Entity") annotation("jakarta.persistence.MappedSuperclass") annotation("jakarta.persistence.Embeddable") } dependencies { api(project(":api:api-v1")) implementation(libs.kotlin.stdlib) implementation(libs.kotlin.reflect) implementation(libs.spring.boot.starter) implementation(libs.spring.boot.starter.data.jpa) implementation(libs.postgres) implementation(libs.liquibase.core) testImplementation(libs.spring.boot.starter.test) testImplementation(libs.junit.jupiter) testImplementation(libs.assertk) testImplementation(libs.testcontainers.postgres) testImplementation(libs.testcontainers.junit.jupiter) } tasks.test { useJUnitPlatform() }