# --- Builder ---
FROM node:22-alpine AS builder
WORKDIR /usr/src/app

COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile

COPY . .
RUN yarn build

# --- Test (E2E - requer MongoDB rodando) ---
FROM builder AS test
ENV MONGODB_URI=mongodb://admin:password123@mongodb:27017/planfi_bff?authSource=admin
CMD ["sh", "-c", "yarn test && yarn test:e2e"]

# --- Runtime ---
FROM node:22-alpine AS runtime
WORKDIR /usr/src/app

ENV NODE_ENV=production

COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile --production

COPY --from=builder /usr/src/app/dist ./dist

EXPOSE 3333

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