services:
  builderius_form.condition.is_builderius_form_submissions_admin_page:
    class: Builderius\Swoop\Bundle\ConditionBundle\Model\IsRequestHasParameterCondition
    arguments:
      - name: is_builderius_form_submissions_admin_page
        description: 'Condition to check whether the current admin page is Builderius Form Submissions page'
        arguments:
          requestType: 'GET'
          parameter: 'page'
          value: 'builderius-form-submissions'
    calls:
      - ['addDependOnCondition', ['@is_backend']]
    tags:
      - { name: wp_condition }

  builderius_form.page.builderius_form_submissions:
    class: Builderius\Swoop\Bundle\PageBundle\Model\SimplePage
    arguments:
      - 'builderius-form-submissions'
      - 'BuilderiusFormBundle:formSubmissionsApp.twig'
    calls:
      - [setTemplating, ['@templating']]
    tags:
      - { name: wp_page }

  builderius_form.admin_menu_page.builderius_form_submissions:
    class: Builderius\Swoop\Bundle\MenuBundle\Model\AdminMenuPage
    arguments:
      - page_title: 'Builderius Form Submissions'
        menu_title: 'Form Submissions'
        menu_slug: 'builderius-form-submissions'
        capability: 'manage_options'
        page: 'builderius-form-submissions'
        parent: 'builderius'
        position: 1
        translation_domain: 'builderius'
    calls:
      - [addCondition, ['@user_has_development_capability']]
    tags:
      - { name: wp_admin_menu_page }

  builderius_form.asset.js.admin_form_subissions_index:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'admin'
        handle: 'builderius-admin-form-submissions-index'
        source: 'builderius:admin-form-submissions-index.js'
        dependencies: ['builderius-react-libs', 'wp-api-request']
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [addCondition, ['@is_builderius_form_submissions_admin_page']]
    tags:
      - { name: wp_asset }

  builderius_form.asset.css.admin_form_submissions_index:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'admin'
        handle: 'builderius-admin-form-submissions-index'
        source: 'builderius:admin-form-submissions-index.css'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    calls:
      - [addCondition, ['@is_builderius_form_submissions_admin_page']]
    tags:
      - { name: wp_asset }

  builderius_form.hook.admin_form_submissions_index_sctipt_translations_load:
    class: Builderius\Bundle\FormBundle\Hook\AdminFormSubmissionsIndexScriptTranslationsLoadHook
    arguments:
      - tag: 'admin_enqueue_scripts'
        priority: 20
    calls:
      - [addCondition, ['@is_builderius_form_submissions_admin_page']]
    tags:
      - { name: wp_hook }

  builderius_form.hook.admin_form_submissions_index_sctipt_translations_file_path_change:
    class: Builderius\Bundle\FormBundle\Hook\AdminFormSubmissionsIndexScriptTranslationsFilePathChangeHook
    arguments:
      - tag: 'load_script_translation_file'
        accepted_args: 3
    calls:
      - [addCondition, ['@is_builderius_form_submissions_admin_page']]
    tags:
      - { name: wp_hook }

  builderius_form.model.builderius_form_submission_post_type:
    class: Builderius\Bundle\FormBundle\Registration\BulderiusFormSubmissionPostType
    tags:
      - { name: wp_post_type }

  builderius_form.model.read_post_status:
    class: Builderius\Bundle\FormBundle\Registration\ReadPostStatus
    tags:
      - { name: wp_post_status }

  builderius_form.model.unread_post_status:
    class: Builderius\Bundle\FormBundle\Registration\UnreadPostStatus
    tags:
      - { name: wp_post_status }

  builderius_form.forms_provider.composite:
    class: Builderius\Bundle\FormBundle\Provider\CompositeBuilderiusFormsProvider
    arguments:
      - !tagged_iterator 'builderius_forms_provider'

  builderius_form.forms_provider.base:
    class: Builderius\Bundle\FormBundle\Provider\BaseBuilderiusFormsProvider
    arguments:
      - !tagged_iterator 'builderius_form'
    tags:
      - {name: builderius_forms_provider}

  builderius_form.rest_api.endpoint.builderius_delete_form_submission:
    class: Builderius\Bundle\FormBundle\RestApi\Endpoint\BuilderiusDeleteFormSubmissionEndpoint
    tags:
      - { name: wp_rest_endpoint }

  builderius_form.rest_api.endpoint.builderius_update_form_submission:
    class: Builderius\Bundle\FormBundle\RestApi\Endpoint\BuilderiusUpdateFormSubmissionEndpoint
    tags:
      - { name: wp_rest_endpoint }

  builderius_form.rest_api.endpoint.builderius_form_submit.factory:
    class: Builderius\Bundle\FormBundle\RestApi\Factory\BuilderiusFormSubmitEndpointsFactory
    public: true
    arguments:
      - '@builderius_form.forms_provider.composite'
      - '@swoop_rest_api.processor.rest_api.endpoints'

  builderius_form.boot_service.builderius_form_submit_rest_api_endpoints.registration:
    class: Builderius\Bundle\FormBundle\Boot\BuilderiusFormEndpointsRegistrationHandler
    tags:
      - { name: swoop_boot_service, priority: 10 }

  builderius_form.registration.builderius_form_submissions_asset_localization:
    class: Builderius\Bundle\FormBundle\Registration\BuilderiusFormSubmissionsScriptLocalization
    arguments:
      - '@swoop_query.wp_query'
    tags:
      - { name: wp_script_localization, handle: builderius-admin-form-submissions-index, priority: 0 }

  builderius_form.provider.dynamic_data_helpers.form:
    class: Builderius\Bundle\FormBundle\DynamicDataHelper\FormDynamicDataHelpersProvider
    arguments:
      - '@builderius_form.forms_provider.composite'
    tags:
      - { name: builderius_dynamic_data_helpers_provider }
