public function registerReports($services)
 {
     $services['voucher.voucher_summary'] = $services->factory(function ($c) {
         return new Voucher\Report\VoucherSummary($c['db.query.builder.factory'], $c['routing.generator']);
     });
     $services['voucher.reports'] = function ($c) {
         $reports = new ReportCollection();
         $reports->add($c['voucher.voucher_summary']);
         return $reports;
     };
 }
 public function registerReports($services)
 {
     $services['cms.search_terms'] = $services->factory(function ($c) {
         return new CMS\Report\SearchTerms($c['db.query.builder.factory'], $c['routing.generator']);
     });
     $services['cms.reports'] = function ($c) {
         $reports = new ReportCollection();
         $reports->add($c['cms.search_terms']);
         return $reports;
     };
 }
 public function registerReports($services)
 {
     $services['commerce.stock_summary'] = $services->factory(function ($c) {
         return new Commerce\Report\StockSummary($c['db.query.builder.factory'], $c['routing.generator'], $c['currency']);
     });
     $services['commerce.payments_refunds'] = $services->factory(function ($c) {
         return new Commerce\Report\PaymentsAndRefunds($c['db.query.builder.factory'], $c['routing.generator'], $c['event.dispatcher']);
     });
     $services['commerce.sales_by_month'] = $services->factory(function ($c) {
         return new Commerce\Report\SalesByMonth($c['db.query.builder.factory'], $c['routing.generator'], $c['event.dispatcher'], $c['currency.supported']);
     });
     $services['commerce.sales_by_day'] = $services->factory(function ($c) {
         return new Commerce\Report\SalesByDay($c['db.query.builder.factory'], $c['routing.generator'], $c['event.dispatcher'], $c['currency.supported']);
     });
     $services['commerce.sales_by_order'] = $services->factory(function ($c) {
         return new Commerce\Report\SalesByOrder($c['db.query.builder.factory'], $c['routing.generator'], $c['event.dispatcher'], $c['currency.supported']);
     });
     $services['commerce.sales_by_item'] = $services->factory(function ($c) {
         return new Commerce\Report\SalesByItem($c['db.query.builder.factory'], $c['routing.generator'], $c['event.dispatcher'], $c['currency.supported']);
     });
     $services['commerce.sales_by_product'] = $services->factory(function ($c) {
         return new Commerce\Report\SalesByProduct($c['db.query.builder.factory'], $c['routing.generator'], $c['event.dispatcher'], $c['currency.supported']);
     });
     $services['commerce.sales_by_unit'] = $services->factory(function ($c) {
         return new Commerce\Report\SalesByUnit($c['db.query.builder.factory'], $c['routing.generator'], $c['event.dispatcher'], $c['currency.supported']);
     });
     $services['commerce.sales_by_location'] = $services->factory(function ($c) {
         return new Commerce\Report\SalesByLocation($c['db.query.builder.factory'], $c['routing.generator'], $c['event.dispatcher'], $c['currency.supported']);
     });
     $services['commerce.sales_by_user'] = $services->factory(function ($c) {
         return new Commerce\Report\SalesByUser($c['db.query.builder.factory'], $c['routing.generator'], $c['event.dispatcher'], $c['currency.supported']);
     });
     $services['commerce.reports'] = function ($c) {
         $reports = new ReportCollection();
         $reports->add($c['commerce.stock_summary'])->add($c['commerce.payments_refunds'])->add($c['commerce.sales_by_month'])->add($c['commerce.sales_by_day'])->add($c['commerce.sales_by_order'])->add($c['commerce.sales_by_item'])->add($c['commerce.sales_by_product'])->add($c['commerce.sales_by_unit'])->add($c['commerce.sales_by_location'])->add($c['commerce.sales_by_user']);
         return $reports;
     };
     $services['commerce.report.sales-data'] = function ($c) {
         return new \Message\Mothership\Report\Report\AppendQuery\Collection([new Commerce\Report\AppendQuery\Sales($c['db.query.builder.factory']), new Commerce\Report\AppendQuery\Shipping($c['db.query.builder.factory'])]);
     };
     $services['commerce.report.transaction-data'] = function ($c) {
         return new \Message\Mothership\Report\Report\AppendQuery\Collection([new Commerce\Report\AppendQuery\Payments($c['db.query.builder.factory'])]);
     };
 }
 public function registerReports($services)
 {
     $services['user.report.user_summary'] = $services->factory(function ($c) {
         return new User\Report\UserSummary($c['db.query.builder.factory'], $c['routing.generator'], $c['country.list'], $c['state.list'], $c['user.report.user_summary.filters'], $c['event.dispatcher']);
     });
     /**
      * @deprecated use `user.report.user_summary` instead
      */
     $services['user.user_summary'] = $services->factory(function ($c) {
         return $c['user.report.user_summary'];
     });
     $services['user.reports'] = function ($c) {
         $reports = new ReportCollection();
         $reports->add($c['user.user_summary']);
         return $reports;
     };
     $services['user.report.filter.address_type'] = $services->factory(function ($c) {
         return new User\Report\Filter\AddressTypeFilter();
     });
     $services['user.report.filter.country'] = $services->factory(function ($c) {
         return new User\Report\Filter\CountryFilter($c['country.list']);
     });
     $services['user.report.filter.created_at'] = $services->factory(function ($c) {
         return new User\Report\Filter\CreatedAtFilter();
     });
     $services['user.report.user_summary.filters'] = $services->factory(function ($c) {
         $collection = new \Message\Mothership\Report\Filter\Collection([$c['user.report.filter.address_type'], $c['user.report.filter.country'], $c['user.report.filter.created_at']]);
         $collection->setSort();
         return $collection;
     });
 }
 public function registerReports($services)
 {
     $services['discount.discount_summary'] = $services->factory(function ($c) {
         return new Discount\Report\DiscountSummary($c['db.query.builder.factory'], $c['routing.generator']);
     });
     $services['discount.reports'] = function ($c) {
         $reports = new ReportCollection();
         $reports->add($c['discount.discount_summary']);
         return $reports;
     };
 }