services:
  _defaults:
    public: true

  PrestaShop\PrestaShop\Core\Hook\HookDispatcher:
    arguments:
      - '@prestashop.hook.dispatcher'

  PrestaShop\PrestaShop\Core\Hook\HookDispatcherInterface: '@PrestaShop\PrestaShop\Core\Hook\HookDispatcher'

  prestashop.core.hook.dispatcher:
    alias: 'PrestaShop\PrestaShop\Core\Hook\HookDispatcher'

  PrestaShop\PrestaShop\Core\Hook\Provider\GridDefinitionHookByServiceIdsProvider:
    public: false
    arguments:
      - '@service_container'

  prestashop.core.hook.provider.grid_definition_hook_by_service_ids_provider:
    alias: PrestaShop\PrestaShop\Core\Hook\Provider\GridDefinitionHookByServiceIdsProvider
    deprecated:
      package: PrestaShop\PrestaShop
      version: 9.0

  PrestaShop\PrestaShop\Core\Hook\Provider\IdentifiableObjectHookByFormTypeProvider:
    public: false
    arguments:
      - '@form.factory'

  prestashop.core.hook.extractor.hook_extractor:
    class: 'PrestaShop\PrestaShop\Core\Hook\Extractor\HookExtractor'

  prestashop.core.hook.provider.identifiable_object_hook_by_form_type_provider:
    alias: PrestaShop\PrestaShop\Core\Hook\Provider\IdentifiableObjectHookByFormTypeProvider
    deprecated:
      package: PrestaShop\PrestaShop
      version: 9.0

  PrestaShop\PrestaShop\Core\Hook\Generator\HookDescriptionGenerator:
    public: false
    autowire: true
    arguments:
      $hookDescriptions: '%hook_descriptions%'

  prestashop.core.hook.generator.hook_description_generator:
    alias: 'PrestaShop\PrestaShop\Core\Hook\Generator\HookDescriptionGenerator'
    deprecated:
      package: PrestaShop\PrestaShop
      version: 9.0

parameters:
  hook_descriptions:
    'grid_definition_modifier':
      'prefix': 'action'
      'suffix': 'GridDefinitionModifier'
      'title': 'Modify %s grid definition'
      'description': 'This hook allows to alter %s grid columns, actions and filters'
    'grid_query_builder_modifier':
      'prefix': 'action'
      'suffix': 'GridQueryBuilderModifier'
      'title': 'Modify %s grid query builder'
      'description': 'This hook allows to alter Doctrine query builder for %s grid'
    'grid_data_modifier':
      'prefix': 'action'
      'suffix': 'GridDataModifier'
      'title': 'Modify %s grid data'
      'description': 'This hook allows to modify %s grid data'
    'grid_filter_form_modifier':
      'prefix': 'action'
      'suffix': 'GridFilterFormModifier'
      'title': 'Modify %s grid filters'
      'description': 'This hook allows to modify filters for %s grid'
    'grid_presenter_modifier':
      'prefix': 'action'
      'suffix': 'GridPresenterModifier'
      'title': 'Modify %s grid template data'
      'description': 'This hook allows to modify data which is about to be used in template for %s grid'
    'option_form':
      'prefix': 'action'
      'suffix': 'Form'
      'title': 'Modify %s options form content'
      'description': 'This hook allows to modify %s options form FormBuilder'
    'option_save':
      'prefix': 'action'
      'suffix': 'Save'
      'title': 'Modify %s options form saved data'
      'description': 'This hook allows to modify data of %s options form after it was saved'
    'form_builder_modifier':
      'prefix': 'action'
      'suffix': 'FormBuilderModifier'
      'title': 'Modify %s identifiable object form'
      'description': 'This hook allows to modify %s identifiable object forms content by modifying form builder data or FormBuilder itself'
    'action_before_update_form_handler':
      'prefix': 'actionBeforeUpdate'
      'suffix': 'FormHandler'
      'title': 'Modify %s identifiable object data before updating it'
      'description': 'This hook allows to modify %s identifiable object forms data before it was updated'
    'action_after_update_form_handler':
      'prefix': 'actionAfterUpdate'
      'suffix': 'FormHandler'
      'title': 'Modify %s identifiable object data after updating it'
      'description': 'This hook allows to modify %s identifiable object forms data after it was updated'
    'action_before_create_form_handler':
      'prefix': 'actionBeforeCreate'
      'suffix': 'FormHandler'
      'title': 'Modify %s identifiable object data before creating it'
      'description': 'This hook allows to modify %s identifiable object forms data before it was created'
    'action_after_create_form_handler':
      'prefix': 'actionAfterCreate'
      'suffix': 'FormHandler'
      'title': 'Modify %s identifiable object data after creating it'
      'description': 'This hook allows to modify %s identifiable object forms data after it was created'
    'form_data_provider_data':
      'prefix': 'action'
      'suffix': 'FormDataProviderData'
      'title': 'Provide %s identifiable object form data for update'
      'description': 'This hook allows to provide %s identifiable object form data which will prefill the form in update/edition page'
    'form_data_provider_default_data':
      'prefix': 'action'
      'suffix': 'FormDataProviderDefaultData'
      'title': 'Provide %s identifiable object default form data for creation'
      'description': 'This hook allows to provide %s identifiable object form data which will prefill the form in creation page'
