# ---- Base Stage ----
FROM oven/bun:alpine AS base

WORKDIR /app
COPY package.json ./
COPY bun.lock ./
COPY .env ./
RUN bun install

# ---- Build Stage ----
FROM base AS build
WORKDIR /app
COPY . .

# ถ้าใช้ prisma ต้อง generate ก่อน
# RUN bunx prisma generate

RUN bun bun:build

# ---- Production Dependencies Stage ----
FROM base AS production_deps
WORKDIR /app

RUN bun install --development

# ---- Release Stage ----
FROM oven/bun:alpine AS release
WORKDIR /app

COPY --from=build /app/server ./server
COPY --from=build /app/public ./public
COPY --from=build /app/.env ./env

EXPOSE 3000

CMD ["./server"]
