ARG PYTHON_VERSION
ARG NODE_VERSION
ARG NPM_VERSION

# ── Stage: prod ──────────────────────────────────────────────────
# Build-Context ist das Repo-Root (.), daher muessen alle COPY-Pfade
# mit App_Server/ praefigiert werden.
FROM python:${PYTHON_VERSION} AS prod
RUN ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
RUN apt-get clean && apt-get update && apt-get install -y locales
RUN echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen
RUN locale-gen
# Das Verzeichnis /usr/opt/pythonapp/env wird als Python-Umgebung (venv) verwendet.
# Es wird bewusst außerhalb des Verzeichnisses /usr/opt/pythonapp/App_Server erstellt, 
# um die Python-Umgebung von den Anwendungsdateien zu trennen und das Virtual Environment nicht auf dem Host zu zeigen.
RUN mkdir -p /usr/opt/pythonapp/App_Server/root /usr/opt/pythonapp/env /usr/var/pythonappdata
WORKDIR /usr/opt/pythonapp
RUN python -m venv --upgrade-deps /usr/opt/pythonapp/env
COPY App_Server/root/requirements.txt /usr/opt/pythonapp/App_Server/root/requirements.txt
RUN /usr/opt/pythonapp/env/bin/pip install --no-cache-dir --upgrade pip -r /usr/opt/pythonapp/App_Server/root/requirements.txt

# Python-Anwendungscode ins Image kopieren (inkl. templates/index.html)
COPY App_Server/root/ /usr/opt/pythonapp/App_Server/root/

# Prod-Start-Script
COPY App_Server/scripts/init.sh /usr/opt/pythonapp/App_Server/scripts/init.sh
RUN chmod +x /usr/opt/pythonapp/App_Server/scripts/init.sh

ENTRYPOINT ["sh", "/usr/opt/pythonapp/App_Server/scripts/init.sh"]

# ── Stage: dev ───────────────────────────────────────────────────
FROM prod AS dev
ARG NODE_VERSION
ARG NPM_VERSION

# --- 2. Systemabhängigkeiten (für Python + Node.js) ---
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        git \
        curl \
        procps \
        build-essential \
        libpq-dev \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libxml2-dev \
        libxslt1-dev \
        sqlite3 \
        && rm -rf /var/lib/apt/lists/*

# --- 3. Node.js + npm installieren ---
RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - && \
    apt-get install -y nodejs && \
    npm install -g npm@${NPM_VERSION}

# --- 4. Dev-Start-Script kopieren (fuer Konsistenz, wird sonst per bind-mount bereitgestellt) ---
COPY App_Server/scripts/inittypescriptdev.sh /usr/opt/pythonapp/App_Server/scripts/inittypescriptdev.sh
RUN chmod +x /usr/opt/pythonapp/App_Server/scripts/inittypescriptdev.sh

ENTRYPOINT ["sh", "/usr/opt/pythonapp/App_Server/scripts/inittypescriptdev.sh"]
CMD ["/usr/opt/pythonapp/env/bin/python", "/usr/opt/pythonapp/App_Server/root/runserver.py", "-D"]

