# =============================================================================
# Stage 1: Build
# =============================================================================
FROM maven:3.9-eclipse-temurin-21 AS build

WORKDIR /build

# Dependencies zuerst cachen (Layer-Cache bei Code-Änderungen stabil)
COPY pom.xml .
RUN mvn dependency:go-offline -q

COPY src ./src
RUN mvn package -DskipTests -q

# =============================================================================
# Stage 2: Runtime
# =============================================================================
FROM eclipse-temurin:21-jre

WORKDIR /app

# Emoji-Schriftart für PDF-Export (Java AWT nutzt fontconfig-Fallback automatisch)
RUN apt-get update && apt-get install -y --no-install-recommends \
    fonts-noto-color-emoji fontconfig \
    && fc-cache -f \
    && rm -rf /var/lib/apt/lists/*

# Quarkus Fast-JAR Layout kopieren
COPY --from=build /build/target/quarkus-app/lib/       ./lib/
COPY --from=build /build/target/quarkus-app/*.jar      ./
COPY --from=build /build/target/quarkus-app/app/       ./app/
COPY --from=build /build/target/quarkus-app/quarkus/   ./quarkus/

EXPOSE 8090

# Alle Konfigurationswerte können als Env-Variablen überschrieben werden:
#
#   DC_API_KEY                       API-Key für eingehende Anfragen
#   DC_AI_BASE_URL                   Ollama-Endpunkt
#   DC_AI_API_KEY                    Ollama X-API-KEY
#   DC_AI_MAIN_MODEL                 Hauptmodell (Übersetzung + Auswertung)
#   DC_AI_OCR_MODEL                  OCR-Modell
#   QUARKUS_REST_CLIENT_ORDS_API_URL ORDS-Basis-URL

ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Djava.awt.headless=true"

HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
  CMD curl -sf http://localhost:8090/check/health || exit 1

ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar quarkus-run.jar"]
