File: /var/www/vhost/disk-apps/alq-cali.bikenow.co/app/Mail/TicketPurchaseEmailListMultiple.php
<?php
namespace App\Mail;
use App\Core\Parameter\Application\ParameterService;
use App\Core\Ticket\Application\TicketService;
use App\Http\Controllers\UtilController;
use App\Services\TicketParametersService;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Crypt;
class TicketPurchaseEmailListMultiple extends Mailable
{
use Queueable, SerializesModels;
public $ticket_type_id;
public $match_event_id;
public $user_data;
public $user;
public $url;
public $pin;
public $key;
public $total_tickets;
public $cryptoString;
public $link;
public $shortLink;
public $title;
public $invoice_link;
public $view;
public $event;
public $appStoreUrl;
public $playStoreUrl;
private $ticketService;
private $ticketParametersService;
private $parameterService;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($userTicketsToSendEmail, $ticket_type_id, $match_event_id, $user_data)
{
$this->title = 'Boletas ' . config('app.name');
$this->ticketService = new TicketService();
$this->ticketParametersService = new TicketParametersService();
$this->parameterService = new ParameterService();
if ($this->ticketParametersService->isStaticQRType()) {
$this->ticket_type_id = $ticket_type_id;
$this->match_event_id = $match_event_id;
$this->user_data = $user_data;
$this->total_tickets = $userTicketsToSendEmail->count();
$this->invoice_link = $this->ticketService->getInvoiceLink($userTicketsToSendEmail[0]->code_ticket);
$this->generateData();
$this->view = 'mails.listTicketsCourtesyMultiple';
} else {
$this->user = $user_data;
$this->event = $this->ticketService->getTicketByCodeTicket($userTicketsToSendEmail[0]->code_ticket)->match_event;
$this->appStoreUrl = $this->parameterService->appStoreUrl();
$this->playStoreUrl = $this->parameterService->playStoreUrl();
$this->view = 'mails.ticket.buy-ticket';
}
}
private function generateData()
{
$this->key = rand(10000, 99999);
$this->cryptoString = Crypt::encryptString($this->key . '|' . $this->user_data->id . '|' . $this->match_event_id . '|multiple|' . $this->ticket_type_id);
$this->link = config('app.url') . '/download_ticket_for_user/count/' . $this->cryptoString;
$util = new UtilController;
$this->shortLink = $util->shorterUrl($this->link);
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from('noreply@sports-crowd.com', 'Sports Crowd')->subject($this->title)->view($this->view);
}
}