Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 34 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
CompaniesLicenseResource | |
0.00% |
0 / 34 |
|
0.00% |
0 / 2 |
6 | |
0.00% |
0 / 1 |
toArray | |
0.00% |
0 / 33 |
|
0.00% |
0 / 1 |
2 | |||
getActiveLicense | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | |
3 | namespace App\Http\Resources; |
4 | |
5 | use App\Http\Models\Plans; |
6 | use Illuminate\Http\Request; |
7 | use Illuminate\Http\Resources\Json\JsonResource; |
8 | |
9 | class CompaniesLicenseResource extends JsonResource |
10 | { |
11 | /** |
12 | * Transform the resource into an array. |
13 | * |
14 | * @return array<string, mixed> |
15 | */ |
16 | public function toArray(Request $request): array |
17 | { |
18 | $license = $this->getActiveLicense($this); |
19 | |
20 | return [ |
21 | "id" => $this->id, |
22 | "name" => $this->name, |
23 | "licensesAvailable" => max(0, $license->total_number_of_licenses_remaining), |
24 | "plans" => [ |
25 | [ |
26 | "value" => Plans::STARTER_YEARLY_IDENTIFIER, |
27 | "label" => "Starter", |
28 | "licensesAvailable" => max(0, $license->total_starter_license_remaining), |
29 | |
30 | ], |
31 | [ |
32 | "value" => Plans::GROWTH_YEARLY_IDENTIFIER, |
33 | "label" => "Growth", |
34 | "licensesAvailable" => max(0, $license->total_growth_license_remaining), |
35 | |
36 | ], |
37 | [ |
38 | "value" => Plans::PROFESSIONAL_YEARLY_IDENTIFIER, |
39 | "label" => "Sales Pro", |
40 | "licensesAvailable" => max(0, $license->total_sales_pro_license_remaining), |
41 | |
42 | ], |
43 | [ |
44 | "value" => Plans::ProPlanTeamsSMB, |
45 | "label" => "Sales Pro Teams", |
46 | "licensesAvailable" => max(0, $license->total_sales_pro_teams_license_remaining), |
47 | |
48 | ], |
49 | [ |
50 | "value" => Plans::FREEMIUM_IDENTIFIER, |
51 | "label" => "Freemium", |
52 | "licensesAvailable" => 'Unlimited', |
53 | |
54 | ], |
55 | ] |
56 | ]; |
57 | } |
58 | |
59 | private function getActiveLicense($company) |
60 | { |
61 | return $company->licenses->first() ?? $company->licenses()->latest()->first(); |
62 | } |
63 | } |