FROM python:3.11-slim

ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    PIP_NO_CACHE_DIR=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1

# Build tools for libpff-python, curl for healthcheck, libjpeg for qrcode PIL
RUN apt-get update && apt-get install -y --no-install-recommends \
        build-essential \
        curl \
        libjpeg-dev \
        zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY backend/requirements.txt /app/backend/requirements.txt
RUN pip install --upgrade pip && \
    pip install -r /app/backend/requirements.txt

COPY backend /app/backend
COPY frontend /app/frontend
COPY admin_frontend /app/admin_frontend
COPY entrypoint.sh /app/entrypoint.sh

RUN chmod +x /app/entrypoint.sh && \
    mkdir -p /app/data

ENV DATA_DIR=/app/data \
    FRONTEND_DIR=/app/frontend \
    ADMIN_FRONTEND_DIR=/app/admin_frontend \
    PYTHONPATH=/app/backend \
    COOKIE_SECURE=false

EXPOSE 8000

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

CMD ["/app/entrypoint.sh"]
