"""Configuration. The three things you point at your own data:

  LOCAL_LIBRARY_PATH  folder of audio files to scan
  ITUNES_XML_PATH     iTunes/Music "Library.xml" you exported manually
  DATA_DIR            storage root: the database + cached fetches live here

Everything can be overridden via environment variables (see .env.example).
"""
import os
from pathlib import Path


def _path(env, default):
    return Path(os.environ.get(env, default)).expanduser()


# --- where YOUR data is read from / written to -------------------------------
# Local music library to scan (tags incl. ISRC/MusicBrainz id are read).
local_library_path = _path("LOCAL_LIBRARY_PATH", "~/Music")

# iTunes / Apple Music library export. In the Music app:
# File -> Library -> Export Library…  (produces an XML/plist file).
itunes_xml_path = _path("ITUNES_XML_PATH", "~/Music/iTunes Library.xml")

# Storage root — the database and cached Spotify responses go here.
data_dir = _path("DATA_DIR", "./data")

# --- derived storage locations -----------------------------------------------
spotify_cache_dir = data_dir / "spotify"   # raw Spotify API responses
database_url = os.environ.get(
    "DATABASE_URL", f"sqlite:///{(data_dir / 'musicindexer.db').as_posix()}"
)

# --- Spotify app credentials (only needed for live fetching) -----------------
client_id = os.environ.get("SPOTIFY_CLIENT_ID")
client_secret = os.environ.get("SPOTIFY_CLIENT_SECRET")

# Contact string sent to MusicBrainz in the User-Agent.
mb_contact = os.environ.get("MB_CONTACT", "music-indexer@example.com")
