services:

  ## Indicators
  chill.calendar.export.count_calendars:
    class: Chill\CalendarBundle\Export\Export\CountCalendars
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export, alias: count_calendars }

  chill.calendar.export.average_duration_calendars:
    class: Chill\CalendarBundle\Export\Export\StatCalendarAvgDuration
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export, alias: average_duration_calendars }

  chill.calendar.export.sum_duration_calendars:
    class: Chill\CalendarBundle\Export\Export\StatCalendarSumDuration
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export, alias: sum_duration_calendars }

  ## Filters

  chill.calendar.export.agent_filter:
    class: Chill\CalendarBundle\Export\Filter\AgentFilter
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export_filter, alias: agent_filter }

  chill.calendar.export.job_filter:
    class: Chill\CalendarBundle\Export\Filter\JobFilter
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export_filter, alias: job_filter }

  chill.calendar.export.scope_filter:
    class: Chill\CalendarBundle\Export\Filter\ScopeFilter
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export_filter, alias: scope_filter }

  chill.calendar.export.between_dates_filter:
    class: Chill\CalendarBundle\Export\Filter\BetweenDatesFilter
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export_filter, alias: between_dates_filter }

  chill.calendar.export.calendar_range_filter:
      class: Chill\CalendarBundle\Export\Filter\CalendarRangeFilter
      autowire: true
      autoconfigure: true
      tags:
          - { name: chill.export_filter, alias: calendar_range_filter }

  ## Aggregator

  chill.calendar.export.agent_aggregator:
    class: Chill\CalendarBundle\Export\Aggregator\AgentAggregator
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export_aggregator, alias: agent_aggregator }

  chill.calendar.export.job_aggregator:
    class: Chill\CalendarBundle\Export\Aggregator\JobAggregator
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export_aggregator, alias: job_aggregator }

  chill.calendar.export.scope_aggregator:
    class: Chill\CalendarBundle\Export\Aggregator\ScopeAggregator
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export_aggregator, alias: scope_aggregator }

  chill.calendar.export.location_type_aggregator:
    class: Chill\CalendarBundle\Export\Aggregator\LocationTypeAggregator
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export_aggregator, alias: location_type_aggregator }

  chill.calendar.export.location_aggregator:
    class: Chill\CalendarBundle\Export\Aggregator\LocationAggregator
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export_aggregator, alias: location_aggregator }

  chill.calendar.export.cancel_reason_aggregator:
    class: Chill\CalendarBundle\Export\Aggregator\CancelReasonAggregator
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export_aggregator, alias: cancel_reason_aggregator }

  chill.calendar.export.month_aggregator:
    class: Chill\CalendarBundle\Export\Aggregator\MonthYearAggregator
    autowire: true
    autoconfigure: true
    tags:
      - { name: chill.export_aggregator, alias: month_aggregator }

  chill.calendar.export.urgency_aggregator:
      class: Chill\CalendarBundle\Export\Aggregator\UrgencyAggregator
      autowire: true
      autoconfigure: true
      tags:
          - { name: chill.export_aggregator, alias: urgency_aggregator }
