# syntax=docker/dockerfile:1
FROM python:3.11-slim AS base

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

WORKDIR /app

RUN apt-get update \
    && apt-get install -y --no-install-recommends build-essential libpq-dev postgresql-client \
    && rm -rf /var/lib/apt/lists/*

COPY backend/requirements/base.txt ./backend/requirements/base.txt
RUN pip install --upgrade pip \
    && pip install -r backend/requirements/base.txt

COPY scripts ./scripts
COPY .env.example ./.env.example
COPY .env* ./

COPY backend ./backend

EXPOSE 8000

# Initialize database with demo data if INIT_DEMO_DB is set
CMD ["sh", "-c", "\
    export PYTHONPATH=/app && \
    echo 'Waiting for database...' && \
    while ! pg_isready -h db -p 5432 -U railgame >/dev/null 2>&1; do sleep 1; done && \
    echo 'Database is ready!' && \
    if [ \"$INIT_DEMO_DB\" = \"true\" ]; then python scripts/init_demo_db.py; fi && \
    uvicorn backend.app.main:app --host 0.0.0.0 --port 8000"]
