Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
14.29% covered (danger)
14.29%
1 / 7
14.29% covered (danger)
14.29%
1 / 7
CRAP
0.00% covered (danger)
0.00%
0 / 1
Company
14.29% covered (danger)
14.29%
1 / 7
14.29% covered (danger)
14.29%
1 / 7
37.86
0.00% covered (danger)
0.00%
0 / 1
 users
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 invitedUsers
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 pocs
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 active_license
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 licenses
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 groupsAndSubgroups
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 newFactory
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace App\Http\Models\Admin;
4
5use App\Http\Models\Auth\User;
6use App\Http\Models\Moloquent;
7use App\Observers\CompanyObserver;
8use database\factories\http\models\CompanyFactory;
9use Illuminate\Database\Eloquent\Attributes\ObservedBy;
10use MongoDB\Laravel\Eloquent\SoftDeletes;
11use Illuminate\Database\Eloquent\Factories\HasFactory;
12use Illuminate\Notifications\Notifiable;
13
14#[ObservedBy([CompanyObserver::class])]
15class Company extends Moloquent
16{
17    use HasFactory, SoftDeletes, Notifiable;
18
19    protected $fillable = [
20        "name",
21        "address_line_1",
22        "address_line_2",
23        "city",
24        "state",
25        "zip",
26        "country",
27        "slug",
28        "instancy_id",
29        "deactivated_at",
30    ];
31
32    protected $casts = [
33        'deactivated_at' => 'datetime',
34    ];
35
36    public function users()
37    {
38        return $this->hasMany(User::class);
39    }
40
41    public function invitedUsers()
42    {
43        return $this->hasMany(AdminUserInvitation::class, 'company_id');
44    }
45
46    /**
47     * Company point of contact persons
48     *
49     * @return \Illuminate\Database\Eloquent\Relations\HasMany
50     */
51    public function pocs()
52    {
53        return $this->hasMany(CompanyPOC::class);
54    }
55
56    public function active_license()
57    {
58        return $this->licenses()->whereBetween('status', 'active')->first();
59    }
60
61    public function licenses()
62    {
63        return $this->hasMany(CompanyLicenses::class);
64    }
65
66    public function groupsAndSubgroups()
67    {
68        return $this->hasMany(CompanyGroup::class);
69    }
70
71    protected static function newFactory()
72    {
73        return CompanyFactory::new();
74    }
75}