# ============================================================================
# Stage 1: Builder
# ============================================================================
FROM python:3.12-slim AS builder

COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/

RUN apt-get update \
    && apt-get install -y --no-install-recommends gcc git libc-dev ssh \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /build

ENV UV_SYSTEM_PYTHON=1

# Install dependencies
COPY pyproject.toml README.md LICENSE uv.lock ./
RUN uv export --frozen --no-dev --no-emit-project -o /tmp/requirements.txt && \
    uv pip install --system -r /tmp/requirements.txt

# Build and install the package
COPY src/ ./src/
RUN SETUPTOOLS_SCM_PRETEND_VERSION=0.0.1 uv pip install --system --no-deps .

# ============================================================================
# Stage 2: Runtime
# ============================================================================
FROM python:3.12-slim AS runtime

# Install only runtime dependencies (minimal)
RUN apt-get update \
    && apt-get install -y --no-install-recommends git graphviz \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /workspace
ENV XDG_CONFIG_HOME=/.config

# Copy only the installed Python environment from builder
COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
COPY --from=builder /usr/local/bin /usr/local/bin

CMD ["python", "-m", "rimsky"]
