FROM node:22-alpine AS builder

WORKDIR /app

# Install dependencies first (better layer caching)
COPY package.json package-lock.json ./
RUN npm ci

# Copy source and build
COPY . .
ENV DATABASE_URL="postgresql://dummy:dummy@localhost:5432/dummy"
ENV BETTER_AUTH_SECRET="build-time-placeholder-not-used"
RUN npm run build

# Production image
FROM node:22-alpine

WORKDIR /app

# Only copy what we need for production
COPY --from=builder /app/build ./build
COPY --from=builder /app/package.json ./
COPY --from=builder /app/package-lock.json ./

# Install production dependencies only (including dotenv)
RUN npm ci --omit=dev

EXPOSE 3001

CMD ["node", "-r", "dotenv/config", "build"]