# Stage 1: Build Frontend
FROM node:22-alpine AS builder

WORKDIR /app

COPY package.json ./
RUN npm install

COPY . .

RUN npm run build

# Stage 2: Production Runtime
FROM node:22-alpine

WORKDIR /app

ENV NODE_ENV=production

# Copy backend package metadata as runtime package metadata
COPY backend/package.json backend/package-lock.json ./

# Install dependencies
RUN npm ci --omit=dev

# Copy backend source directly into root
COPY backend/index.js ./index.js
COPY backend/db.js ./db.js
COPY backend/config ./config
COPY backend/policies ./policies
COPY backend/services ./services
COPY backend/utils ./utils

# Copy built frontend
COPY --from=builder /app/dist ./dist

EXPOSE 3001

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