Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 7
CRAP
0.00% covered (danger)
0.00%
0 / 1
CompanyGroup
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 7
56
0.00% covered (danger)
0.00%
0 / 1
 company
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 managers
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 users
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 groupInvitedUsers
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 subgroupInvitedUsers
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 parent
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 subgroups
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace App\Http\Models\Admin;
4
5use App\Http\Models\Auth\User;
6use App\Http\Models\Moloquent;
7use App\Http\Models\SalesProTeamManager;
8use App\Observers\CompanyGroupObserver;
9use Illuminate\Database\Eloquent\Attributes\ObservedBy;
10use Illuminate\Database\Eloquent\Factories\HasFactory;
11use Illuminate\Notifications\Notifiable;
12
13#[ObservedBy([CompanyGroupObserver::class])]
14class CompanyGroup extends Moloquent
15{
16    use HasFactory, Notifiable;
17
18    protected $fillable = [
19        "name",
20        "parent_id",
21        "company_id",
22        "sales_pro_team_manager_id",
23    ];
24
25    public function company()
26    {
27        return $this->belongsTo(Company::class);
28    }
29
30    public function managers()
31    {
32        return $this->belongsToMany(SalesProTeamManager::class);
33    }
34
35    public function users()
36    {
37        return $this->hasMany(User::class);
38    }
39
40    public function groupInvitedUsers()
41    {
42        return $this->hasMany(AdminUserInvitation::class, 'company_group_id');
43    }
44
45    public function subgroupInvitedUsers()
46    {
47        return $this->hasMany(AdminUserInvitation::class, 'company_subgroup_id');
48    }
49
50    public function parent()
51    {
52        return $this->belongsTo(CompanyGroup::class, 'parent_id');
53    }
54
55    public function subgroups()
56    {
57        return $this->hasMany(CompanyGroup::class, 'parent_id')->orderBy('name', 'asc');
58    }
59}