# ═══════════════════════════════════════════════════════════════
# DCS PPJK — Production Requirements
# ═══════════════════════════════════════════════════════════════
# Install (Linux prod): pip install -r requirements.txt
# Update:               pip install -r requirements.txt --upgrade
#
# Semua versi di-pin exact untuk reproducible build.
# Dev-only deps (pytest, ruff, dll) ada di requirements-dev.txt.
# ═══════════════════════════════════════════════════════════════

# ── Web framework ────────────────────────────────────────────
fastapi==0.115.6
uvicorn==0.32.1
python-multipart==0.0.19
aiofiles==24.1.0
jinja2==3.1.4

# ── Database ─────────────────────────────────────────────────
sqlalchemy==2.0.36
psycopg2-binary==2.9.10          # legacy driver (masih dipakai beberapa util)
psycopg[binary]==3.2.3           # driver utama (postgresql+psycopg://)
alembic==1.14.0                  # schema migrations — WAJIB dijalankan sebelum uvicorn

# ── Config / validation ──────────────────────────────────────
pydantic==2.10.4
pydantic-settings==2.7.0
python-dotenv==1.0.1

# ── Data processing (Excel parsing) ──────────────────────────
pandas==2.2.3
openpyxl==3.1.5

# ── Security hardening ───────────────────────────────────────
bcrypt==4.2.1                    # password hashing (industry standard)
slowapi==0.1.9                   # rate limiting middleware

# ── AI (Cross-Check) ─────────────────────────────────────────
google-genai==0.3.0

# ── Monitoring ───────────────────────────────────────────────
# Sentry no-op kalau SENTRY_DSN kosong. Aman selalu di-install.
sentry-sdk[fastapi]==2.19.0
# Prometheus metrics — expose /metrics endpoint untuk scraping by
# Prometheus/Grafana/Datadog/VictoriaMetrics. Zero overhead kalau tidak di-scrape.
prometheus-client==0.21.1
