from pydantic_settings import BaseSettings, SettingsConfigDict


class Settings(BaseSettings):
    app_name: str = "Gold Theft AI Service"
    app_version: str = "1.0.0"
    auth_token: str = "change-me"

    data_source_mode: str = "HYBRID"  # DB_FIRST | CSV_ONLY | HYBRID
    mysql_host: str = "127.0.0.1"
    mysql_port: int = 3306
    mysql_db: str = "dhahabu"
    mysql_user: str = "root"
    mysql_password: str = ""

    events_csv_path: str = "ai-service/data/events.csv"
    gps_csv_path: str = "ai-service/data/gps_points.csv"
    face_embeddings_path: str = "ai-service/data/face_embeddings.json"

    model_dir: str = "ai-service/models"
    isolation_model_file: str = "isolation_forest.joblib"
    random_forest_model_file: str = "random_forest.joblib"
    model_meta_file: str = "model_meta.json"

    route_deviation_km_threshold: float = 1.5
    face_provider_mode: str = "both"  # local | external | both
    external_face_api_url: str = ""
    external_face_api_key: str = ""

    ci_callback_base_url: str = "http://localhost/dhahabu/public"
    ci_callback_token: str = "change-me"

    model_config = SettingsConfigDict(env_file=".env", env_prefix="AI_")


settings = Settings()
