# =============================================================================
# Coba 後端 API Docker 映像檔定義
# =============================================================================
# 基於 Python 3.12-slim(輕量、穩定、FastAPI 生態最完整)
# =============================================================================

FROM python:3.12-slim

# 工作目錄
WORKDIR /code

# 系統相依套件(asyncpg / bcrypt / 健康檢查需要)
RUN apt-get update && apt-get install -y --no-install-recommends \
        build-essential \
        libpq-dev \
        curl \
    && rm -rf /var/lib/apt/lists/*

# Python 環境設定
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1 \
    PIP_NO_CACHE_DIR=1

# 先複製 requirements 安裝依賴(讓 Docker layer 快取生效)
COPY requirements.txt .
RUN pip install --upgrade pip && pip install -r requirements.txt

# 複製專案檔案
COPY app ./app
COPY alembic ./alembic
COPY alembic.ini ./alembic.ini

# 預設啟動指令:
# 1. 跑 migration(建立/升級資料表結構)
# 2. seed 第一個 owner 帳號(若不存在)
# 3. 用 uvicorn 啟動 FastAPI
CMD ["sh", "-c", "alembic upgrade head && python -m app.core.seed && uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload"]
