FROM oven/bun:1-alpine AS base
WORKDIR /app

# ── dev ───────────────────────────────────────────────────────────────────────
# src/ is bind-mounted at runtime; only deps are baked in.
FROM base AS dev
COPY package.json bun.lock ./
RUN bun install
EXPOSE 3000
CMD ["bun", "--hot", "src/index.ts"]

# ── prod ──────────────────────────────────────────────────────────────────────
FROM base AS prod
ENV NODE_ENV=production
COPY package.json bun.lock bunfig.toml ./
RUN bun install --frozen-lockfile
COPY src ./src
RUN mkdir -p data
EXPOSE 3000
CMD ["bun", "src/index.ts"]
