"""Transparent, versioned baseline model. Replace model here after backtesting."""
from pathlib import Path
import joblib
from sklearn.linear_model import LogisticRegression
from app.prediction.features import FEATURE_COLUMNS

MODEL_PATH = Path("models/gap_direction.joblib")


def train(features, target) -> None:
    model = LogisticRegression(class_weight="balanced", max_iter=1000).fit(features[FEATURE_COLUMNS], target)
    MODEL_PATH.parent.mkdir(exist_ok=True)
    joblib.dump(model, MODEL_PATH)


def probability_up(feature_row) -> float:
    model = joblib.load(MODEL_PATH)
    return float(model.predict_proba(feature_row[FEATURE_COLUMNS])[0, 1])
