FROM python:3.12-slim AS base

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1

WORKDIR /app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt \
    && groupadd --system app && useradd --system --gid app app \
    && mkdir -p /data && chown app:app /data

FROM base AS api

COPY --chown=app:app src/backend/main.py ./
COPY --chown=app:app src/backend/admin.py ./
COPY --chown=app:app src/backend/schedule ./schedule
USER app
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "1"]

FROM base AS frontend

COPY --chown=app:app src/frontend/main.py frontend/main.py
COPY --chown=app:app src/frontend/admin.html frontend/admin.html
COPY --chown=app:app src/frontend/static frontend/static
USER app
EXPOSE 8080
CMD ["uvicorn", "frontend.main:app", "--host", "0.0.0.0", "--port", "8080"]
