"""Konfigurasi proyek dari env / `.env`. Bacaan tipe via `os.getenv`; nilai default = konstanta lama. Muat `.env` sekali di sini supaya semua modul (get_voters, dashboard) berbagi sumber yang sama. """ import os from dotenv import load_dotenv load_dotenv() # BP target TARGET_BP = os.getenv('VEX_TARGET_BP', 'databisnisid') # Node RPC publik Vexanium API_NODE = os.getenv('VEX_API_NODE', 'https://v2.vexascan.com:2096') # Lokasi basis data SQLite (dipakai fetcher & dashboard) DB_PATH = os.getenv('VEX_DB_PATH', 'voters.db') # Syarat minimum stake (dalam VEX) untuk disimpan MIN_STAKED_VEX = float(os.getenv('VEX_MIN_STAKED_VEX', '1000')) # Dashboard: ukuran halaman list PAGE_SIZE = int(os.getenv('DASH_PAGE_SIZE', '50')) # Dashboard: host & port server Flask DASH_HOST = os.getenv('DASH_HOST', '127.0.0.1') DASH_PORT = int(os.getenv('DASH_PORT', '5000')) # Dashboard: jumlah worker gunicorn (produksi) DASH_WORKERS = int(os.getenv('DASH_WORKERS', '2')) # Ambang batas vote "basi" (hari tanpa revote) — pemilih lewat batas ini dibuang di scan VEX_STALE_DAYS = int(os.getenv('VEX_STALE_DAYS', '28')) # API databisnis untuk saldo liquid akun (balance BP, disajikan dashboard) DATABISNIS_API = os.getenv('DATABISNIS_API', 'https://api.databisnis.id') # Dashboard: TTL cache (detik) untuk saldo liquid — gagal fetch juga di-cooldown DASH_LIQUID_TTL = int(os.getenv('DASH_LIQUID_TTL', '60'))