<?php

namespace App\Jobs;

use App\Models\Package;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;

class SendVoucherOwner implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    protected $code;
    protected $email;
    protected $coupon;

    public function __construct($code, $email, $coupon)
    {
        //
        $this->code = $code;
        $this->email = $email;
        $this->coupon = $coupon;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function onConnection($connection)
    {
        $this->connection = 'redis';
        return $this;
    }

    public function handle()
    {
        //
        $email = $this->email;
        $coupon = $this->coupon;
        $packageId = $coupon->package_ids;
        $packageName = null;
        $endTime = null;


        $packageId = $coupon->package_ids;
        $packageNew = Package::find($packageId);
        if ($packageNew) {
            $packageName = $packageNew->name;
        }
        if (!empty($coupon->end_date_expire)) {
            $endTime = $coupon->end_date_expire->format('d/m/Y');
        }


        \Mail::send('frontend3.mail.voucher', ['code' => $this->code,
            'packageName' => $packageName,
            'coupon' => $coupon,
            'endTime' => $endTime
        ], function ($message) use ($email) {
            $message->to($email)->subject('Thông báo từ itro.vn');
        });
    }
}
