services:
  
  Basket:
    class: Drupal\basket\Basket
    arguments: ['@database']

  basket.twig.BasketTwigExtension:
    class: Drupal\basket\Plugins\Twig\BasketTwigExtension
    tags:
      - { name: twig.extension }

  BasketPopup:
    class: Drupal\basket\Plugins\Popup\BasketPopupManager
    parent: default_plugin_manager

  BasketDelivery:
    class: Drupal\basket\Plugins\Delivery\BasketDeliveryManager
    parent: default_plugin_manager

  BasketPayment:
    class: Drupal\basket\Plugins\Payment\BasketPaymentManager
    parent: default_plugin_manager

  BasketDeliverySettings:
    class: Drupal\basket\Plugins\DeliverySettings\BasketDeliverySettingsManager
    parent: default_plugin_manager

  BasketDiscount:
    class: Drupal\basket\Plugins\Discount\BasketDiscountManager
    parent: default_plugin_manager

  BasketParams:
    class: Drupal\basket\Plugins\Params\BasketParamsManager
    parent: default_plugin_manager

  BasketStockBulk:
    class: Drupal\basket\Plugins\Stock\BasketStockBulkManager
    parent: default_plugin_manager

  cache_context.basket_currency:
    class: Drupal\basket\Cache\BasketCurrencyCacheContext
    arguments: []
    tags:
      - { name: cache.context }

  theme.negotiator.basket_theme:
    class: Drupal\basket\Theme\BasketThemeNegotiator
    arguments: ['@current_user']
    tags:
      - { name: theme_negotiator, priority: 1000 }

  basket.event_subscriber:
    class: Drupal\basket\Event\EventSubscriber
    tags:
      - { name: event_subscriber }
