# engine/history.py
import yfinance as yf
import pandas as pd
from pathlib import Path

CACHE_DIR = Path("storage/history")
CACHE_DIR.mkdir(exist_ok=True)

def load_monthly_close(ticker, years=10):
    file = CACHE_DIR / f"{ticker}.csv"

    if file.exists():
        df = pd.read_csv(file, parse_dates=["Date"], index_col="Date")
        return df["Close"]

    df = yf.download(
        ticker,
        period=f"{years}y",
        auto_adjust=True,
        progress=False
    )

    if df.empty:
        raise RuntimeError(f"No history for {ticker}")

    series = df["Close"].resample("M").last()
    series.to_csv(file, header=["Close"])

    return series
