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

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {

    // Spring
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-validation'

    // Test
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.testcontainers:testcontainers:1.17.6'
    testImplementation 'org.testcontainers:junit-jupiter:1.17.6'
    testImplementation 'org.testcontainers:mysql:1.17.6'
    implementation 'com.redis.testcontainers:testcontainers-redis-junit-jupiter:1.4.6'

    // DB 관련
    implementation 'mysql:mysql-connector-java'
    implementation "org.flywaydb:flyway-mysql"
    implementation 'org.springframework.boot:spring-boot-starter-data-redis'

    // Help
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    implementation 'io.rest-assured:rest-assured:5.3.0' // API Test 시 사용
    implementation 'com.google.guava:guava:31.1-jre' // Util Library
    implementation group: 'org.mindrot', name: 'jbcrypt', version: '0.4'
}

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

jar {
    enabled = false
}
