FROM node:22-alpine AS web-build
WORKDIR /build/web
COPY web/package.json web/package-lock.json* ./
RUN npm install
COPY web/ .
RUN npm run build

FROM node:22-alpine AS api-build
WORKDIR /build/api
COPY api/package.json api/package-lock.json* ./
RUN npm install
COPY api/ .
RUN npm run build

FROM node:22-alpine
WORKDIR /app

COPY --from=api-build /build/api/package.json /build/api/package-lock.json* ./
RUN npm install --omit=dev
COPY --from=api-build /build/api/dist ./dist
COPY --from=web-build /build/web/build ./public

ENV NODE_ENV=production
ENV PORT=3300
EXPOSE 3300

CMD ["node", "dist/index.js"]
