# Mock Suite Satellite Service — stubs the parent-suite ingest API for blackbox tests.
#
# Behaviour spec: _docs/02_tasks/todo/AZ-406_test_infrastructure.md § Mock Services
# Contract sketch: _docs/_process_leftovers/2026-05-09_satellite-provider-design-tasks.md
# NFT-SEC-01 cross-check: the accepted-fields shape MUST match the contract sketch.

FROM python:3.12-slim-bookworm

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1

WORKDIR /app

RUN apt-get update && apt-get install -y --no-install-recommends curl \
    && rm -rf /var/lib/apt/lists/*

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

COPY app.py /app/app.py

ENV MOCK_SUITE_SAT_AUDIT_PATH=/audit
RUN mkdir -p /audit

EXPOSE 8080

HEALTHCHECK --interval=5s --timeout=2s --retries=12 \
    CMD curl -fsS http://localhost:8080/mock/health || exit 1

CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8080", "--log-level", "info"]
