# ── Stage 1: build the SvelteKit dashboard ──
FROM node:24-slim AS dashboard-build

WORKDIR /dashboard

COPY dashboard/package.json dashboard/package-lock.json ./
RUN npm ci

COPY dashboard/ ./
RUN npm run build

# ── Stage 2: Python runtime ──
FROM python:3.12-slim

WORKDIR /app

RUN apt-get update \
    && apt-get install -y --no-install-recommends curl \
    && rm -rf /var/lib/apt/lists/*

COPY . .
RUN pip install --no-cache-dir .

# dashboard/build is .dockerignored from the host context; copy the freshly
# built dashboard from stage 1 so FastAPI can serve it at /app/dashboard/build
COPY --from=dashboard-build /dashboard/build ./dashboard/build

EXPOSE 8000

CMD ["python", "run.py"]
