# Use uma imagem base Python leve
FROM python:3.11-slim

# Define o diretório de trabalho dentro do container
WORKDIR /app

# Define variáveis de ambiente para evitar que o Python gere arquivos .pyc e para garantir logs em tempo real
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV PYTHONPATH=/app/src

# Instala dependências do sistema necessárias (se houver)
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    && rm -rf /var/lib/apt/lists/*

# Copia o arquivo de dependências primeiro para aproveitar o cache das camadas do Docker
COPY src/requirements.txt .

# Instala as dependências do Python
RUN pip install --no-cache-dir -r requirements.txt

# Copia o restante do código da aplicação e diretórios necessários
COPY src/ ./src/
COPY prompts/ ./prompts/
COPY reports/ ./reports/

# Cria o diretório de saída para os relatórios
RUN mkdir -p reports_output

# Define o comando padrão para executar a aplicação
# O usuário deve passar o caminho do arquivo de plano como argumento ao rodar o container
ENTRYPOINT ["python", "src/main.py"]