FROM python:3.11-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1

# curl нужен для healthcheck
RUN apt-get update \
    && apt-get install -y --no-install-recommends curl \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

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

COPY . .

RUN mkdir -p /app/data

EXPOSE 8080

# Проверяем, что admin-панель отвечает (401 = нормально, требует авторизацию)
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
  CMD curl -sf -o /dev/null -w "%{http_code}" http://localhost:8080/admin/ \
      | grep -qE "^(200|301|302|401)" || exit 1

CMD ["python", "main.py"]
