# ── Stage 1 : Builder ─────────────────────────────────────────────────────────
FROM rust:slim AS builder

ARG BUILDKIT_INLINE_CACHE=1

RUN apt-get update && apt-get install -y \
    pkg-config libssl-dev curl git nodejs npm \
    && rm -rf /var/lib/apt/lists/*

RUN rustup target add wasm32-unknown-unknown
RUN cargo install cargo-leptos

WORKDIR /app
COPY . .
RUN npm install

ENV SQLX_OFFLINE=true
ENV LEPTOS_TAILWIND_VERSION=v4.1.13

RUN cargo leptos build --release

# ── Stage 2 : Runtime ─────────────────────────────────────────────────────────
FROM debian:bookworm-slim AS runtime

RUN apt-get update && apt-get install -y \
    ca-certificates libssl3 \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY --from=builder /app/target/release/enuxia-quiz ./
COPY --from=builder /app/target/site ./site

RUN mkdir -p /data

ENV LEPTOS_OUTPUT_NAME=enuxia-quiz
ENV LEPTOS_SITE_ROOT=/app/site
ENV LEPTOS_SITE_ADDR=0.0.0.0:3000
ENV DATABASE_URL=sqlite:///data/quiz.db

EXPOSE 3000
CMD ["./enuxia-quiz"]