import org.jetbrains.kotlin.gradle.tasks.KotlinCompile


plugins {
	id("org.springframework.boot") version "3.0.2"
	id("io.spring.dependency-management") version "1.1.0"
	kotlin("jvm") version "1.8.0"
	kotlin("plugin.spring") version "1.8.0"
	kotlin("plugin.jpa") version "1.8.0"
	kotlin("plugin.serialization") version "1.8.0"
}

group = "com.aitrainer"
version = "1.2.9"
java.sourceCompatibility = JavaVersion.VERSION_17

repositories {
	mavenCentral()
	google()
}

dependencies {
	implementation("org.springframework.boot:spring-boot-starter-data-jpa")
	implementation("org.springframework.boot:spring-boot-starter-web")
	implementation("org.springframework.boot:spring-boot-starter-aop")
	implementation("org.springframework.boot:spring-boot-starter-validation")
	implementation("org.springframework.boot:spring-boot-starter-security")
	implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
	implementation(dependencyNotation = "org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.6.8")
	implementation("org.springframework.security.oauth:spring-security-oauth2:2.5.2.RELEASE")
	implementation("javax.validation:validation-api:2.0.1.Final")
	implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
	implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
	implementation("org.apache.logging.log4j:log4j-core:2.19.0")
	implementation("org.apache.logging.log4j:log4j-api:2.19.0")
	implementation("org.slf4j:slf4j-api:2.0.6")

	implementation("org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1")

	implementation("io.jsonwebtoken:jjwt:0.9.1")
	implementation("org.yaml:snakeyaml:2.0")
	implementation("com.google.code.gson:gson:2.10.1")
	implementation("org.json:json:20220924")

	implementation("org.projectlombok:lombok:1.18.24")
	implementation("org.jetbrains.kotlin:kotlin-reflect:1.8.0")
	implementation("com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5")
	implementation("jakarta.mail:jakarta.mail-api:2.1.1")
	implementation("org.eclipse.angus:angus-mail:2.0.1")

	implementation("com.aallam.openai:openai-client:3.2.2")
	implementation("io.ktor:ktor-client-java:2.2.3")
	implementation("ognl:ognl:3.3.4")


	runtimeOnly("mysql:mysql-connector-java")
	testImplementation("org.springframework.boot:spring-boot-starter-test") {
		exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
	}
	testImplementation("junit:junit:4.13.2")
	testImplementation("org.jetbrains.kotlin:kotlin-test-junit5:1.8.0")

}

tasks.withType<Test> {
	useJUnitPlatform()
}

tasks.withType<KotlinCompile> {
	kotlinOptions {
		freeCompilerArgs = listOf("-Xjsr305=strict", "-opt-in=kotlin.RequiresOptIn")
		jvmTarget = "17"
	}
}