FROM oven/bun:1.2.18 AS website-builder
WORKDIR /website
COPY website/package.json ./
RUN bun install
COPY website/ .
RUN bun run build

FROM oven/bun:1.2.18 AS mobile-builder
WORKDIR /mobile
COPY mobile/package.json ./
RUN bun install
COPY mobile/ .
RUN bun run build:web

FROM oven/bun:1.2.18 AS games-builder
WORKDIR /games
COPY games/package.json ./
RUN bun install
COPY games/ .
RUN bun run build

FROM oven/bun:1.2.18
WORKDIR /app
COPY backend/package.json backend/bun.lock backend/tsconfig.json ./
RUN bun install --frozen-lockfile --production
COPY backend/src ./src
COPY --from=website-builder /website/dist ./public
COPY --from=mobile-builder /mobile/dist ./public/mobile
COPY --from=games-builder /games/dist ./public/games

ENV NODE_ENV=production
ENV PORT=8080
ENV API_PREFIX=/api

EXPOSE 8080

CMD ["bun", "src/index.ts"]
