plugins {
    id 'java'
    id 'org.springframework.boot' version '3.2.2'
    id 'io.spring.dependency-management' version '1.1.4'
}

ext {
    set('jwtVersion', '0.12.5')
    set('springdocOpenapiUIVersion', '2.3.0')
    set('mockitoVersion', '5.10.0')
    set('jwtVersion', '0.12.5')
    set('springdocOpenapiUIVersion', '2.3.0')
    set('springRetryVersion', '2.0.7')
}

group = 'com.dnd'
version = '0.0.1-SNAPSHOT'

java {
    sourceCompatibility = '17'
}

repositories {
    mavenCentral()
}

dependencies {
    /* spring starter */
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-validation'
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'

    /* spring retry */
    implementation("org.springframework.retry:spring-retry:${springRetryVersion}")
    implementation("org.springframework:spring-aspects")

    /* micrometer */
    implementation 'io.micrometer:micrometer-registry-prometheus'

    /* lombok */
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'

    /* swagger */
    implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:${springdocOpenapiUIVersion}")

    /* jwt */
    implementation("io.jsonwebtoken:jjwt-api:${jwtVersion}")
    runtimeOnly("io.jsonwebtoken:jjwt-impl:${jwtVersion}")
    runtimeOnly("io.jsonwebtoken:jjwt-jackson:${jwtVersion}")

    /* json */
    implementation 'com.googlecode.json-simple:json-simple:1.1.1'

    /* test */
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation("org.mockito:mockito-core:${mockitoVersion}")
}

tasks.named('test') {
    useJUnitPlatform()
}
