services:
  builderius_template.template_applicant_category.other:
    class: Builderius\Bundle\CategoryBundle\Model\BuilderiusCategory
    arguments:
      - name: other
        label: Other pages
        sortOrder: 1000
        groups: [ 'applicant' ]
    tags:
      - { name: builderius_category }

  builderius_template.template_applicant_category.special_pages:
    class: Builderius\Bundle\CategoryBundle\Model\BuilderiusCategory
    arguments:
      - name: special_pages
        label: Special pages
        sortOrder: 10
        groups: [ 'applicant' ]
    tags:
      - { name: builderius_category }

  builderius_template.template_applicant_category.static_pages:
    class: Builderius\Bundle\CategoryBundle\Model\BuilderiusCategory
    arguments:
      - name: static_pages
        label: Static pages
        sortOrder: 20
        groups: [ 'applicant' ]
    tags:
      - { name: builderius_category }

  builderius_template.template_applicant_category.blog_posts:
    class: Builderius\Bundle\CategoryBundle\Model\BuilderiusCategory
    arguments:
      - name: blog_posts
        label: Blog posts
        sortOrder: 30
        groups: [ 'applicant' ]
    tags:
      - { name: builderius_category }

  builderius_template.template_applicant_category.author_archives:
    class: Builderius\Bundle\CategoryBundle\Model\BuilderiusCategory
    arguments:
      - name: author_archives
        label: Author archives
        sortOrder: 50
        groups: [ 'applicant' ]
    tags:
      - { name: builderius_category }

  builderius_template.template_applicant_category.category_archives:
    class: Builderius\Bundle\CategoryBundle\Model\BuilderiusCategory
    arguments:
      - name: category_archives
        label: Category archives
        sortOrder: 60
        groups: [ 'applicant' ]
    tags:
      - { name: builderius_category }

  builderius_template.template_applicant_category.tag_archives:
    class: Builderius\Bundle\CategoryBundle\Model\BuilderiusCategory
    arguments:
      - name: tag_archives
        label: Tag archives
        sortOrder: 70
        groups: [ 'applicant' ]
    tags:
      - { name: builderius_category }

  builderius_template.template_applicant_category.search_results:
    class: Builderius\Bundle\CategoryBundle\Model\BuilderiusCategory
    arguments:
      - name: search_results
        label: Search results
        sortOrder: 200
        groups: [ 'applicant' ]
    tags:
      - { name: builderius_category }

  builderius_template.template_applicant_category.date_archives:
    class: Builderius\Bundle\CategoryBundle\Model\BuilderiusCategory
    arguments:
      - name: date_archives
        label: Date archives
        sortOrder: 210
        groups: [ 'applicant' ]
    tags:
      - { name: builderius_category }

  builderius_template.provider.applicants.composite:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\CompositeBuilderiusTemplateLocationApplicantsProvider
    lazy: true

  builderius_template.provider.applicants.singulars:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\BuilderiusTemplateSingularsApplicantsProvider
    arguments:
      - !tagged builderius_template_applicant_filter
      - ['post', 'page']
    calls:
      - ['setEventDispatcher', ['@event_dispatcher']]
    tags:
      - { name: builderius_template_applicants_provider }

  builderius_template.provider.applicants.pages:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\BuilderiusTemplatePagesApplicantsProvider
    arguments:
      - !tagged builderius_template_applicant_filter
    calls:
      - ['setEventDispatcher', ['@event_dispatcher']]
    tags:
      - { name: builderius_template_applicants_provider }

  builderius_template.provider.applicants.blog_posts:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\BuilderiusTemplateBlogPostsApplicantsProvider
    arguments:
      - !tagged builderius_template_applicant_filter
    calls:
      - ['setEventDispatcher', ['@event_dispatcher']]
    tags:
      - { name: builderius_template_applicants_provider }

  builderius_template.provider.applicants.blog_posts_index:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\BuilderiusTemplateBlogPostsIndexPageApplicantsProvider
    arguments:
      $filters: !tagged builderius_template_applicant_filter
    tags:
      - { name: builderius_template_applicants_provider }

  builderius_template.provider.applicants.singular.page.front:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\BuilderiusTemplateFrontPageApplicantsProvider
    arguments:
      - '@swoop_query.wp_query'
      - !tagged builderius_template_applicant_filter
    calls:
      - ['setEventDispatcher', ['@event_dispatcher']]
    tags:
      - { name: builderius_template_applicants_provider }

  builderius_template.provider.applicants.author_archives:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\BuilderiusTemplateAuthorArchivesApplicantsProvider
    arguments:
      $filters: !tagged builderius_template_applicant_filter
    tags:
      - { name: builderius_template_applicants_provider }

  builderius_template.provider.applicants.category_archives:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\BuilderiusTemplateCategoryArchivesApplicantsProvider
    arguments:
      $filters: !tagged builderius_template_applicant_filter
    tags:
      - { name: builderius_template_applicants_provider }

  builderius_template.provider.applicants.date_archives:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\BuilderiusTemplateDateArchivesApplicantsProvider
    arguments:
      $filters: !tagged builderius_template_applicant_filter
    tags:
      - { name: builderius_template_applicants_provider }

  builderius_template.provider.applicants.tag_archives:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\BuilderiusTemplateTagArchivesApplicantsProvider
    arguments:
      $filters: !tagged builderius_template_applicant_filter
    tags:
      - { name: builderius_template_applicants_provider }

  builderius_template.provider.applicants.search_results:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\BuilderiusTemplateSearchResultsPageApplicantsProvider
    arguments:
      $filters: !tagged builderius_template_applicant_filter
    tags:
      - { name: builderius_template_applicants_provider }

  builderius_template.provider.applicants.other.page.404:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\BuilderiusTemplate404PageApplicantsProvider
    arguments:
      $filters: !tagged builderius_template_applicant_filter
    tags:
      - { name: builderius_template_applicants_provider }

#---------------- Filters ----------------------------------------------------

  # WP_Query Filters and General Filters
  builderius_template.filter.applicant.post_id:
    class: Builderius\Bundle\TemplateBundle\Applicant\Provider\Filter\PostIdFilter
    arguments:
      $conditionName: post_id
    tags:
      - { name: builderius_template_applicant_filter }
