plugins {
    id("com.iqser.red.service.java-conventions")
    id("io.freefair.lombok") version "8.6"
}

val springBootStarterVersion = "3.1.5"
val springCloudVersion = "4.0.4"

configurations {
    all {
        exclude(group = "commons-logging", module = "commons-logging")
        exclude(group = "org.springframework.boot", module = "spring-boot-starter-log4j2")
        exclude(group = "com.iqser.red.commons", module = "logging-commons")
    }
}
dependencies {
    api(project(":persistence-service-shared-api-v1"))
    api(project(":persistence-service-shared-mongo-v1"))
    api(project(":persistence-service-external-api-v1"))
    api(project(":persistence-service-internal-api-v1"))
    api("com.iqser.red.service:pdftron-redaction-service-api-v1:${rootProject.extra.get("pdftronRedactionServiceVersion")}") {
        exclude(group = "com.iqser.red.service", module = "persistence-service-internal-api-v1")
        exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1")
    }
    api("com.iqser.red.service:redaction-service-api-v1:${rootProject.extra.get("redactionServiceVersion")}") {
        exclude(group = "com.iqser.red.service", module = "persistence-service-internal-api-v1")
        exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1")
    }
    api("com.iqser.red.service:redaction-report-service-api-v1:${rootProject.extra.get("redactionReportServiceVersion")}") {
        exclude(group = "com.iqser.red.service", module = "persistence-service-internal-api-v1")
        exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1")
    }
    api("com.iqser.red.service:search-service-api-v1:${rootProject.extra.get("searchServiceVersion")}") {
        exclude(group = "com.iqser.red.service", module = "persistence-service-internal-api-v1")
        exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1")
    }
    api("com.knecon.fforesight:azure-ocr-service-api:0.13.0")
    implementation("com.knecon.fforesight:llm-service-api:1.20.0-RED10072.2")
    api("com.knecon.fforesight:jobs-commons:0.13.0")
    api("com.iqser.red.commons:storage-commons:2.50.0")
    api("com.knecon.fforesight:tenant-commons:0.31.0-RED10196.0") {
        exclude(group = "com.iqser.red.commons", module = "storage-commons")
    }
    api("com.knecon.fforesight:database-tenant-commons:0.31.0") {
        exclude(group = "com.knecon.fforesight", module = "tenant-commons")
    }
    api("com.knecon.fforesight:keycloak-commons:0.30.0") {
        exclude(group = "com.knecon.fforesight", module = "tenant-commons")
    }
    api("com.knecon.fforesight:tracing-commons:0.5.0")
    api("com.knecon.fforesight:swagger-commons:0.7.0")
    api("com.giffing.bucket4j.spring.boot.starter:bucket4j-spring-boot-starter:0.4.0")
    api("org.springframework.security:spring-security-acl:6.0.2")
    api("org.springframework.boot:spring-boot-starter-mail:${springBootStarterVersion}")
    api("org.springframework.boot:spring-boot-starter-data-jpa:${springBootStarterVersion}")
    api("org.springframework.boot:spring-boot-starter-data-redis:${springBootStarterVersion}")
    api("org.springframework.boot:spring-boot-starter-amqp:${springBootStarterVersion}")
    api("org.springframework.boot:spring-boot-starter-web:${springBootStarterVersion}")
    api("org.springframework.boot:spring-boot-starter-websocket:${springBootStarterVersion}")
    api("org.springframework.security:spring-security-messaging:6.1.3")
    api("com.iqser.red.commons:spring-commons:2.1.0")
    api("com.iqser.red.commons:jackson-commons:2.3.0")
    api("com.iqser.red.commons:spring-boot-starter-web-custom-commons:2.1.0")
    api("com.iqser.red.commons:metric-commons:2.3.0")
    api("org.apache.commons:commons-compress:1.21")
    api("org.postgresql:postgresql:42.2.23")
    api("org.apache.commons:commons-lang3:3.12.0")
    api("com.opencsv:opencsv:5.4")
    api("org.springframework.cloud:spring-cloud-starter-openfeign:${springCloudVersion}")
    api("commons-validator:commons-validator:1.7")
    api("com.opencsv:opencsv:5.9")

    implementation("com.google.protobuf:protobuf-java:4.27.1")
    implementation("org.mapstruct:mapstruct:1.6.2")
    annotationProcessor("org.mapstruct:mapstruct-processor:1.6.2")

    testImplementation("org.springframework.amqp:spring-rabbit-test:3.0.2")
    testImplementation("org.testcontainers:postgresql:1.17.1")
    testImplementation("org.springframework.boot:spring-boot-starter-test:3.0.4")
    testImplementation("com.yannbriancon:spring-hibernate-query-utils:2.0.0")
    testImplementation("org.springframework.boot:spring-boot-starter-test:3.0.4")
}

description = "persistence-service-processor-v1"
