<?php declare(strict_types=1); namespace Xentral\Modules\Ticket\Task; use DB as LegacyDataBase; use Ticket as TicketModule; use erpAPI; use Config as LegacyConfig; use Xentral\Components\Logger\Logger; use Xentral\Components\MailClient\Client\MailClientInterface; use Xentral\Modules\SystemMailer\Data\EmailBackupAccount; use Xentral\Modules\Ticket\Importer\TicketFormatter; class TicketImportHelperFactory { /** @var LegacyDataBase $db */ private $db; /** @var erpAPI $erpApi */ private $erpApi; /** @var LegacyConfig $config */ private $config; /** @var TicketModule $ticketModule */ private $ticketModule; /** @var TicketFormatter $formatter */ private $formatter; /** @var Logger $logger */ private $logger; /** * TicketImportHelperFactory constructor. * * @param LegacyDataBase $db * @param erpAPI $erpApi * @param LegacyConfig $config * @param TicketModule $ticketModule * @param TicketFormatter $formatter * @param Logger $logger */ public function __construct( LegacyDataBase $db, erpAPI $erpApi, LegacyConfig $config, TicketModule $ticketModule, TicketFormatter $formatter, Logger $logger ) { $this->db = $db; $this->erpApi = $erpApi; $this->ticketModule = $ticketModule; $this->config = $config; $this->formatter = $formatter; $this->logger = $logger; } /** * @param MailClientInterface $mailClient * @param EmailBackupAccount $mailAccount * @param int $projectId * * @return TicketImportHelper */ public function create( MailClientInterface $mailClient, EmailBackupAccount $mailAccount, int $projectId ): TicketImportHelper { $helper = new TicketImportHelper( $this->db, $this->erpApi, $this->ticketModule, $this->config, $this->formatter, $mailClient, $mailAccount, $projectId ); $helper->setLogger($this->logger); return $helper; } }