Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 20
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
AddExistentUserJob
0.00% covered (danger)
0.00%
0 / 20
0.00% covered (danger)
0.00%
0 / 3
42
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getActiveLicense
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 handle
0.00% covered (danger)
0.00%
0 / 18
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3namespace App\Jobs\Emails;
4
5use App\Http\Models\Admin\Company;
6use App\Http\Models\Parameter;
7use App\Mail\AdminCenterAddExistingUser;
8use App\Services\Email\EmailService;
9use Illuminate\Bus\Queueable;
10use Illuminate\Contracts\Queue\ShouldQueue;
11use Illuminate\Foundation\Bus\Dispatchable;
12use Illuminate\Queue\InteractsWithQueue;
13use Illuminate\Queue\SerializesModels;
14use Illuminate\Support\Facades\Log;
15
16class AddExistentUserJob implements ShouldQueue
17{
18    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
19
20    public $tries = 3;
21
22    public $retryAfter = 60;
23
24    /**
25     * Create a new job instance.
26     */
27    public function __construct(
28        private readonly string $email,
29        private readonly string $adminEmail,
30        private readonly Company $company,
31        private readonly EmailService $emailService
32    ) {
33        //
34    }
35
36    private function getActiveLicense($company)
37    {
38        return $company->licenses->first() ?? $company->licenses()->latest()->first();
39    }
40
41    /**
42     * Execute the job.
43     */
44    public function handle(): void
45    {
46        try {
47            $companyLicense = $this->getActiveLicense($this->company);
48
49            $bcc = null;
50
51            if ($companyLicense->business_pro_enterprise_plus !== null && in_array('yes_community', $companyLicense->business_pro_enterprise_plus)) {
52                $parameters = Parameter::where('name', 'bcc_email_community_coach')->first();
53
54                $bcc = $parameters->value ?? 'heysupport@vengreso.com';
55            }
56
57            $this->emailService->send(
58                $this->email,
59                new AdminCenterAddExistingUser(
60                    admin_email: $this->adminEmail,
61                    email: $this->email,
62                    company: $this->company->name,
63                ),
64                'add_existing_user',
65                true,
66                $bcc
67            );
68        } catch (\Exception $e) {
69            Log::error('Error sending email: '.$e->getMessage());
70        }
71    }
72}