# Batuta Development Dockerfile
# Includes development tools and hot-reload support
#
# Build: docker build -f Dockerfile.dev -t batuta:dev .
# Run:   docker-compose up dev

FROM rust:1.75-slim

# Install development dependencies
RUN apt-get update && apt-get install -y \
    pkg-config \
    libssl-dev \
    git \
    python3 \
    python3-pip \
    python3-venv \
    gcc \
    g++ \
    make \
    curl \
    vim \
    && rm -rf /var/lib/apt/lists/*

# Install cargo development tools
RUN cargo install cargo-watch cargo-edit cargo-outdated

# Create development user
RUN useradd -m -u 1000 -s /bin/bash batuta

# Set working directory
WORKDIR /workspace

# Set ownership
RUN chown -R batuta:batuta /workspace

# Switch to development user
USER batuta

# Set environment variables
ENV RUST_BACKTRACE=full
ENV BATUTA_LOG_LEVEL=debug
ENV CARGO_HOME=/home/batuta/.cargo
ENV PATH=$PATH:/home/batuta/.cargo/bin

# Expose any ports needed for development
EXPOSE 8080

# Default command: watch mode
CMD ["cargo", "watch", "-x", "check", "-x", "test"]

# Labels
LABEL maintainer="Pragmatic AI Labs"
LABEL description="Batuta Development Environment"
LABEL version="0.1.0-dev"
