"""Collection orchestration. Adding a source should only change this file."""
from app.db.database import SessionLocal
from app.db.models import MarketTick
from app.sources.contracts import Quote


def persist_quote(quote: Quote) -> None:
    with SessionLocal() as session:
        session.add(MarketTick(source=quote.source, symbol=quote.symbol, observed_at=quote.observed_at, ltp=quote.ltp, open=quote.open, high=quote.high, low=quote.low, close=quote.close, volume=quote.volume, open_interest=quote.open_interest, raw=quote.raw or {}))
        session.commit()
