Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
License
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
5
100.00% covered (success)
100.00%
1 / 1
 wantsToDrive
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
5
1<?php
2
3declare(strict_types=1);
4
5namespace Engelsystem\Models\User;
6
7use Illuminate\Database\Eloquent\Factories\HasFactory;
8use Illuminate\Database\Query\Builder as QueryBuilder;
9
10/**
11 * @property bool $has_car
12 * @property bool $drive_forklift
13 * @property bool $drive_car
14 * @property bool $drive_3_5t
15 * @property bool $drive_7_5t
16 * @property bool $drive_12t
17 * @property bool $drive_confirmed
18 * @property bool $ifsg_certificate_light
19 * @property bool $ifsg_certificate
20 * @property bool $ifsg_confirmed
21 *
22 * @method static QueryBuilder|License[] whereHasCar($value)
23 * @method static QueryBuilder|License[] whereDriveForklift($value)
24 * @method static QueryBuilder|License[] whereDriveCar($value)
25 * @method static QueryBuilder|License[] whereDrive35T($value)
26 * @method static QueryBuilder|License[] whereDrive75T($value)
27 * @method static QueryBuilder|License[] whereDrive12T($value)
28 * @method static QueryBuilder|License[] whereDriveConfirmed($value)
29 * @method static QueryBuilder|License[] whereIfsgCertificateLight($value)
30 * @method static QueryBuilder|License[] whereIfsgCertificate($value)
31 * @method static QueryBuilder|License[] whereIfsgConfirmed($value)
32 */
33class License extends HasUserModel
34{
35    use HasFactory;
36
37    /** @var string The table associated with the model */
38    protected $table = 'users_licenses'; // phpcs:ignore
39
40    /** @var array<string, bool> Default attributes */
41    protected $attributes = [ // phpcs:ignore
42        'has_car' => false,
43        'drive_forklift' => false,
44        'drive_car' => false,
45        'drive_3_5t' => false,
46        'drive_7_5t' => false,
47        'drive_12t' => false,
48        'drive_confirmed' => false,
49        'ifsg_certificate_light' => false,
50        'ifsg_certificate' => false,
51        'ifsg_confirmed' => false,
52    ];
53
54    /**
55     * The attributes that are mass assignable.
56     *
57     * @var array<string>
58     */
59    protected $fillable = [ // phpcs:ignore
60        'user_id',
61        'has_car',
62        'drive_forklift',
63        'drive_car',
64        'drive_3_5t',
65        'drive_7_5t',
66        'drive_12t',
67        'drive_confirmed',
68        'ifsg_certificate_light',
69        'ifsg_certificate',
70        'ifsg_confirmed',
71    ];
72
73    /** @var array<string> */
74    protected $casts = [ // phpcs:ignore
75        'user_id' => 'integer',
76        'has_car' => 'boolean',
77        'drive_forklift' => 'boolean',
78        'drive_car' => 'boolean',
79        'drive_3_5t' => 'boolean',
80        'drive_7_5t' => 'boolean',
81        'drive_12t' => 'boolean',
82        'drive_confirmed' => 'boolean',
83        'ifsg_certificate_light' => 'boolean',
84        'ifsg_certificate' => 'boolean',
85        'ifsg_confirmed' => 'boolean',
86    ];
87
88    /**
89     * If the user wants to drive at the event
90     */
91    public function wantsToDrive(): bool
92    {
93        return $this->drive_forklift
94            || $this->drive_car
95            || $this->drive_3_5t
96            || $this->drive_7_5t
97            || $this->drive_12t;
98    }
99}