"""Market-domain widgets: marketplace links on container pages."""
from __future__ import annotations

from shared.contracts.widgets import NavWidget
from shared.services.widget_registry import widgets
from shared.services.registry import services


async def _nav_markets_context(
    session, *, container_type, container_id, post_slug, **kw,
):
    markets = await services.market.marketplaces_for_container(
        session, container_type, container_id,
    )
    return {"markets": markets, "post_slug": post_slug}


def register_market_widgets() -> None:
    widgets.add_container_nav(NavWidget(
        domain="market",
        order=30,
        context_fn=_nav_markets_context,
        template="_widgets/container_nav/market_links.html",
    ))
