# --- 1. Frontend bauen ---
FROM node:20-bookworm-slim AS frontend-build
WORKDIR /app
COPY frontend ./frontend
WORKDIR /app/frontend
RUN npm install && npm run build

# --- 2. Backend-Stage ---
FROM python:3.13-slim-bullseye
WORKDIR /app

# Backend-Dateien korrekt kopieren
COPY backend/app.py ./backend/app.py
COPY backend/util ./backend/util
COPY backend/auth ./backend/auth
COPY backend/tools ./backend/tools
COPY backend/admin.py ./backend/admin.py
COPY backend/templates ./backend/templates
# Store DB config in a docker-friendly location (/config), override via DB_CONFIG_PATH env if needed
COPY backend/config /config
COPY backend/requirements.txt ./requirements.txt
COPY backend/entrypoint.sh ./entrypoint.sh

# Frontend aus Build-Stage übernehmen
COPY --from=frontend-build /app/frontend/dist ./frontend/dist

# Python-Abhängigkeiten installieren
RUN pip install --no-cache-dir -r requirements.txt

# Entrypoint ausführbar machen
RUN chmod +x /app/entrypoint.sh

# Flask starten
WORKDIR /app/backend
ENV PYTHONPATH=/app/backend
ENV DB_CONFIG_PATH=/config/db_config.json
EXPOSE 5000
ENTRYPOINT ["/app/entrypoint.sh"]
