FROM node:22-alpine AS base

ARG BUILD_SHA=unknown
ARG VITE_BUILD_SHA=unknown
ENV BUILD_SHA=$BUILD_SHA
ENV VITE_BUILD_SHA=$VITE_BUILD_SHA

WORKDIR /app

RUN apk add --no-cache bash curl

FROM base AS client_deps
COPY client/package.json client/package-lock.json ./client/
RUN cd client && npm ci

FROM client_deps AS client_build
COPY client ./client
RUN cd client && npm run build

FROM base AS server_deps
COPY server/package.json server/package-lock.json ./server/
COPY server/prisma ./server/prisma
RUN cd server && npm ci

FROM server_deps AS server_build
COPY server ./server
COPY scripts ./scripts
COPY --from=client_build /app/client/dist ./client/dist

WORKDIR /app/server
ENV NODE_ENV=production
CMD ["npm", "start"]
