FROM oven/bun:latest AS frontend-build
WORKDIR /app

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

COPY frontend/ .
RUN bun run build

FROM golang:1.26-alpine AS go-build
WORKDIR /app

COPY backend/go.mod backend/go.sum ./
RUN go mod download

COPY backend/ .
COPY --from=frontend-build /app/dist ./static
RUN CGO_ENABLED=0 go build -o /server .

FROM alpine:3.21
RUN apk add --no-cache ca-certificates

COPY --from=go-build /server /server
EXPOSE 8080

CMD ["/server"]
