plugins {
    id 'java-library'
}

dependencies {
    // Spring Boot Starters (api로 노출 — 소비 모듈이 사용)
    api 'org.springframework.boot:spring-boot-starter-web'
    api 'org.springframework.boot:spring-boot-starter-data-jpa'
    api 'org.springframework.boot:spring-boot-starter-security'
    api 'org.springframework.boot:spring-boot-starter-validation'
    api 'org.springframework.boot:spring-boot-starter-data-redis'
    api 'org.springframework.boot:spring-boot-starter-cache'
    api 'org.springframework.boot:spring-boot-starter-actuator'
    api 'org.springframework.boot:spring-boot-starter-oauth2-client'
    api 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'

    // JWT
    api 'io.jsonwebtoken:jjwt-api:0.12.6'
    runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.6'
    runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.6'

    // OpenAPI
    api 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.6'

    // Admin Console (조건부)
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

    // Flyway (소비 모듈이 DBMS별 추가)
    api 'org.flywaydb:flyway-core'

    // DB 드라이버 — compileOnly (소비 모듈이 runtimeOnly로 선택)
    compileOnly 'com.mysql:mysql-connector-j'
    compileOnly 'org.postgresql:postgresql'
    compileOnly 'com.oracle.database.jdbc:ojdbc11:23.6.0.24.10'
    compileOnly 'com.microsoft.sqlserver:mssql-jdbc:12.8.1.jre11'

    // Embedded Redis (Docker 없이 Redis 자동 구동)
    api('it.ozimov:embedded-redis:0.7.3') {
        exclude group: 'org.slf4j'
        exclude group: 'ch.qos.logback'
    }

    // Micrometer
    runtimeOnly 'io.micrometer:micrometer-registry-prometheus'

    // Test
    testRuntimeOnly 'com.h2database:h2'
}
