# Stage 1: Build Angular and server
FROM oven/bun:1-alpine AS builder
WORKDIR /app

COPY package*.json bun.lock* ./
RUN bun install --frozen-lockfile

COPY . .
# Non-secret env for build; pass build args if needed
ARG STRAVA_CLIENT_ID=
ARG STRAVA_REDIRECT_URI=
ARG RIOT_REGION=eun1
ARG RIOT_SUMMONER_NAME_LOL=
ARG RIOT_SUMMONER_NAME_TFT=
ARG RIOT_TAG_LINE=
ARG FACEIT_USER_ID=
ARG ROCKET_LEAGUE_PLATFORM=steam
ARG ROCKET_LEAGUE_USERNAME=

ENV STRAVA_CLIENT_ID=$STRAVA_CLIENT_ID \
    STRAVA_REDIRECT_URI=$STRAVA_REDIRECT_URI \
    RIOT_REGION=$RIOT_REGION \
    RIOT_SUMMONER_NAME_LOL=$RIOT_SUMMONER_NAME_LOL \
    RIOT_SUMMONER_NAME_TFT=$RIOT_SUMMONER_NAME_TFT \
    RIOT_TAG_LINE=$RIOT_TAG_LINE \
    FACEIT_USER_ID=$FACEIT_USER_ID \
    ROCKET_LEAGUE_PLATFORM=$ROCKET_LEAGUE_PLATFORM \
    ROCKET_LEAGUE_USERNAME=$ROCKET_LEAGUE_USERNAME

RUN bun run build:ssr

# Stage 2: Runtime
FROM oven/bun:1-alpine
WORKDIR /app

COPY --from=builder /app/dist ./dist
COPY --from=builder /app/scripts ./scripts
COPY --from=builder /app/package*.json bun.lock* ./
RUN bun install --frozen-lockfile --production

EXPOSE 4000
ENV NODE_ENV=production
CMD ["node", "scripts/serve-ssr.js"]
