# Stage 1: compile LibreDWG (provides dwgread for DWG → DXF conversion)
FROM debian:bookworm-slim AS libredwg-builder

RUN apt-get update && apt-get install -y --no-install-recommends \
    xz-utils \
    build-essential \
    autoconf \
    automake \
    libtool \
    python3 \
    && rm -rf /var/lib/apt/lists/*

COPY libredwg-0.12.5.tar.xz .
RUN tar xf libredwg-0.12.5.tar.xz \
    && cd libredwg-0.12.5 \
    && ./configure --prefix=/opt/libredwg --disable-shared --disable-bindings \
    && make -j"$(nproc)" \
    && make install \
    && cd .. \
    && rm -rf libredwg-0.12.5 libredwg-0.12.5.tar.xz

# Stage 2: runtime
FROM python:3.12-slim

COPY --from=libredwg-builder /opt/libredwg/bin/dwgread /usr/local/bin/dwgread

# poppler-utils for pdf2image; cairo + pango for cairosvg
RUN apt-get update && apt-get install -y --no-install-recommends \
    poppler-utils \
    libgl1 \
    libcairo2 \
    libpango-1.0-0 \
    libpangocairo-1.0-0 \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

RUN mkdir -p /tmp/dwg-counting

EXPOSE 8000

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
