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        'admins',
24    ];
25
26    public function company()
27    {
28        return $this->belongsTo(Company::class);
29    }
30
31    public function managers()
32    {
33        return $this->belongsToMany(SalesProTeamManager::class);
34    }
35
36    public function users()
37    {
38        return $this->hasMany(User::class);
39    }
40
41    public function groupInvitedUsers()
42    {
43        return $this->hasMany(AdminUserInvitation::class, 'company_group_id');
44    }
45
46    public function subgroupInvitedUsers()
47    {
48        return $this->hasMany(AdminUserInvitation::class, 'company_subgroup_id');
49    }
50
51    public function parent()
52    {
53        return $this->belongsTo(CompanyGroup::class, 'parent_id');
54    }
55
56    public function subgroups()
57    {
58        return $this->hasMany(CompanyGroup::class, 'parent_id')->orderBy('name', 'asc');
59    }
60}