FROM eclipse-temurin:21-jdk-alpine

RUN apk add --no-cache curl tzdata

# Install supercronic for cron scheduling
RUN curl -fsSL -o /usr/local/bin/supercronic \
  https://github.com/aptible/supercronic/releases/download/v0.2.30/supercronic-linux-amd64 \
 && chmod +x /usr/local/bin/supercronic

WORKDIR /app

# Copy source files
COPY src/ /app/src/
COPY export_real_words_with_hints.csv /app/export_real_words_with_hints.csv
COPY compile.sh /app/compile.sh
COPY docker-entrypoint.sh /app/docker-entrypoint.sh
COPY crontab /app/crontab

# Compile Java code
RUN chmod +x /app/compile.sh && \
    mkdir -p /app/target && \
    cp src/puzzle/postgresql-42.7.8.jar /app/target/ && \
    javac -cp /app/target/postgresql-42.7.8.jar -d /app/target src/puzzle/*.java

# Create output directory
RUN mkdir -p /data/puzzles

ENV TZ=Europe/Amsterdam
ENV OUT_DIR=/data/puzzles
ENV PUZZLES_PER_DAY=3
ENV THEME_FILTER=true
ENV THEME_MIN_SCORE=0.6

VOLUME ["/data"]

RUN chmod +x /app/docker-entrypoint.sh

ENTRYPOINT ["/app/docker-entrypoint.sh"]
