# Shared Bun stage for frontend dependencies and sources
FROM oven/bun:1 AS bun-base

WORKDIR /app

COPY package.json bun.lock /app/
COPY frontend/package.json /app/frontend/

WORKDIR /app/frontend

RUN bun install

COPY ./frontend /app/frontend
ARG VITE_API_URL


# Development stage for docker compose watch + Vite HMR
FROM bun-base AS dev-stage

EXPOSE 80

CMD ["bun", "run", "dev", "--host", "0.0.0.0", "--port", "80"]


# Build stage for production assets
FROM bun-base AS build-stage

RUN bun run build


# Production stage serving compiled assets with Nginx
FROM nginx:1

COPY --from=build-stage /app/frontend/dist/ /usr/share/nginx/html

COPY ./frontend/nginx.conf /etc/nginx/conf.d/default.conf
COPY ./frontend/nginx-backend-not-found.conf /etc/nginx/extra-conf.d/backend-not-found.conf
