repositories {
    mavenLocal()
    mavenCentral()
    maven() {
        url = uri("https://artifactory-oss.prod.netflix.net/artifactory/maven-oss-candidates")
    }
}

ext {
    springCloudVersion = "2023.0.3"
}

dependencies {

    implementation 'br.com.rayan:hd-commons-lib:1.0.0'

    // Spring Boot Starters initial project
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
    implementation 'org.springframework.boot:spring-boot-starter-validation'

    // Swagger / OpenAPI (compatível com Spring Boot 3.3.x)
    implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'

    // Lombok for code generation (at compile time)
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'

    // Lombok para TESTES (ESSENCIAL)
    testCompileOnly 'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'

    // MapStruct for object mapping (at compile time)
    implementation 'org.mapstruct:mapstruct:1.5.3.Final'
    annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.3.Final'

    // Spring Security dependencies for authentication and authorization
    implementation 'org.springframework.security:spring-security-crypto:6.4.7'

    // Testing dependencies
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    // Mockito for mocking in tests
    testImplementation 'org.mockito:mockito-core:5.12.0'

    // Podam for data mocking in tests
    testImplementation 'uk.co.jemos.podam:podam:8.0.2.RELEASE'


}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}
