FROM node:20-alpine AS client-build
WORKDIR /client

COPY client/package*.json ./
RUN npm ci

COPY client/ ./
RUN npm run build

FROM node:20-alpine
WORKDIR /app
ENV NODE_ENV=production

COPY server/package*.json ./
RUN npm ci --omit=dev

COPY server/index.js ./
COPY server/config ./config
COPY server/routes ./routes
COPY server/services ./services
COPY --from=client-build /client/dist ./public

EXPOSE 3001
CMD ["node", "index.js"]
