# Learn more about services, parameters and containers at
# http://symfony.com/doc/current/service_container.html
parameters:
#    parameter_name: value

services:
  #    service_name:
  #        class: AppBundle\Directory\ClassName
  #        arguments: ["@another_service_name", "plain_value", "%parameter_name%"]
  sms_repo:
    class: Doctrine\ORM\EntityRepository
    factory: [ "@doctrine.orm.entity_manager", getRepository ]
    arguments:
      - AppBundle\Entity\SMS
  admin_repo:
    class: Doctrine\ORM\EntityRepository
    factory: [ "@doctrine.orm.entity_manager", getRepository ]
    arguments:
      - AppBundle\Entity\Admin
  technician_repo:
    class: Doctrine\ORM\EntityRepository
    factory: [ "@doctrine.orm.entity_manager", getRepository ]
    arguments:
      - AppBundle\Entity\Technician
  advisor_repo:
    class: Doctrine\ORM\EntityRepository
    factory: [ "@doctrine.orm.entity_manager", getRepository ]
    arguments:
      - AppBundle\Entity\Advisor
  customer_repo:
    class: Doctrine\ORM\EntityRepository
    factory: [ "@doctrine.orm.entity_manager", getRepository ]
    arguments:
      - AppBundle\Entity\Customer
  sales_manager_repo:
    class: Doctrine\ORM\EntityRepository
    factory: [ "@doctrine.orm.entity_manager", getRepository ]
    arguments:
      - AppBundle\Entity\SalesManager
  repair_order_repo:
    class: Doctrine\ORM\EntityRepository
    factory: [ "@doctrine.orm.entity_manager", getRepository ]
    arguments:
      - AppBundle\Entity\RepairOrder
  price_matrix_repo:
    class: Doctrine\ORM\EntityRepository
    factory: [ "@doctrine.orm.entity_manager", getRepository ]
    arguments:
      - AppBundle\Entity\PriceMatrix
  sales_lead_repo:
    class: Doctrine\ORM\EntityRepository
    factory: [ "@doctrine.orm.entity_manager", getRepository ]
    arguments:
      - AppBundle\Entity\SalesLead
  trumpia:
    class: AppBundle\Service\Trumpia
  url_shortener:
    class: AppBundle\Service\URLShortener
    arguments:
      - '@doctrine.orm.entity_manager'
  twilio:
    class: AppBundle\Service\Twilio
    arguments:
      - '@doctrine.orm.entity_manager'
      - '@security.token_storage'
      - '%twilio_number%'
  sales_twilio:
    class: AppBundle\Service\SalesTwilio
    arguments:
      - '@doctrine.orm.entity_manager'
      - '%sales_twilio_number%'
      - '@customer_repo'
      - '@admin_repo'
      - '@sales_manager_repo'
      - '@sales_lead_repo'
      - '@twilio'
      - '@push_notifications'
  customer:
    class: AppBundle\Service\Customer
    arguments:
      - '@doctrine.orm.entity_manager'
      - '@security.token_storage'
      - '@customer_repo'
      - '@twilio'
      - '@repair_order_repo'
  phase_helper:
    class: AppBundle\Service\PhaseHelper
    arguments:
      - '@doctrine.orm.entity_manager'
      - '@repair_order_repo'
  wordpress_login:
    class: AppBundle\Service\WordpressLogin
  login_log:
    class: AppBundle\Service\LogLogin
    arguments:
      - '@doctrine.orm.entity_manager'
  interaction_log:
    class: AppBundle\Service\InteractionLog
    arguments:
      - '@doctrine.orm.entity_manager'
  repair_order_data:
    class: AppBundle\Service\RepairOrderData
    arguments:
      - '@doctrine.orm.entity_manager'
      - '@repair_order_repo'
  file_uploader:
    class: AppBundle\Service\FileUploader
    arguments: [ '%kernel.root_dir%/../web/videos' ]
  app.pricing:
    class: AppBundle\Service\Pricing
    arguments:
      - '@price_matrix_repo'
      - '@admin_repo'
      - '%pricing_matrix%'
  app.twig_extension:
    class: AppBundle\Twig\EmojiExtension
    public: false
    tags:
      - { name: twig.extension }
    arguments:
      - '@twilio'
  soap_helper:
    class: AppBundle\Service\SOAP
    arguments:
      - '@doctrine.orm.entity_manager'
  automate:
    class: AppBundle\Service\AutoMate
    arguments:
      - '@doctrine.orm.entity_manager'
      - '%automate_endpoint_id%'
      - '@twilio'
  dealertrack:
    class: AppBundle\Service\DealerTrack
    arguments:
      - '@doctrine.orm.entity_manager'
      - '%dealertrack_enterprise%'
      - '%dealertrack_company%'
  dealerbuilt:
    class: AppBundle\Service\DealerBuilt
    arguments:
      - '@doctrine.orm.entity_manager'
      - '%dealerbuilt_username%'
      - '%dealerbuilt_password%'
      - '%dealerbuilt_location_id%'
  cdk:
    class: AppBundle\Service\CDK
    arguments:
      - '@doctrine.orm.entity_manager'
      - '@soap_helper'
      - '%cdk_dealer_id%'
  app.dms:
    class: AppBundle\Service\DMS
    arguments:
      - '%automate%'
      - '%dealertrack%'
      - '%dealerbuilt%'
      - '%cdk%'
      - '%iservice%'
      - '@automate'
      - '@dealertrack'
      - '@dealerbuilt'
      - '@cdk'
      - '%activate_integration_sms%'
      - '%dealertrack_filter%'
      - '%client_url%'
      - '@twilio'
      - '@customer'
      - '@doctrine.orm.entity_manager'
      - '@url_shortener'
      - '@customer_repo'
      - '@repair_order_repo'
      - '@technician_repo'
      - '@advisor_repo'
      - '@admin_repo'
  app.nmi:
    class: AppBundle\Service\NMI
    arguments:
      - '%nmi_merchant_user%'
      - '%nmi_merchant_password%'
      - '@logger'
      - '@doctrine.orm.entity_manager'
  app.digital_ocean:
    class: AppBundle\Service\DigitalOcean
    arguments:
      - '%client_url%'
  myREVIEW:
    class: AppBundle\Service\myREVIEW
    arguments:
      - '@doctrine.orm.entity_manager'
      - '@service_container'
      - '@twilio'
      - '@url_shortener'
      - '%client_url%'
  unleash-the-kraken:
    class: AppBundle\Command\KrakenCommand
    calls:
      - [ setContainer, [ "@service_container" ] ]
  app.curl:
    class: AppBundle\Service\Curl
    arguments:
      - '@logger'
  video_compression:
    class: AppBundle\Service\VideoCompression
  app.jwt:
    class: AppBundle\Service\JWT
  sales_sms_helper:
    class: AppBundle\Service\SalesSmsHelper
    arguments:
      - '@doctrine.orm.entity_manager'
      - '@security.token_storage'
      - '@twilio'
  push_notifications:
    class: AppBundle\Service\PushNotifications
    arguments:
      - '@doctrine.orm.entity_manager'
  json:
    class: AppBundle\Service\JSON
  vin_solutions:
    class: AppBundle\Service\VinSolutions
    arguments:
      - '@doctrine.orm.entity_manager'
