Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 9
CRAP
0.00% covered (danger)
0.00%
0 / 1
AdminUserInvitation
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 9
110
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
 plan
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 company_group
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 company_subgroup
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getInvitationLinkForAdminPortal
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 subscription
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 getStatusAttribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 sendPasswordResetNotification
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 user
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\Plans;
6use App\Http\Models\Auth\BaseUser as Authenticatable;
7use App\Notifications\User\ResetPassword;
8use App\Observers\CompanyObserver;
9use App\Traits\CustomHasRoles;
10use Illuminate\Contracts\Auth\MustVerifyEmail;
11use Illuminate\Database\Eloquent\Factories\HasFactory;
12use Illuminate\Notifications\Notifiable;
13use Laravel\Cashier\Billable;
14use Laravel\Passport\HasApiTokens;
15use MongoDB\Laravel\Eloquent\SoftDeletes;
16use Illuminate\Database\Eloquent\Attributes\ObservedBy;
17use Mpociot\Teamwork\Traits\UserHasTeams;
18
19//#[ObservedBy([CompanyObserver::class])]
20class AdminUserInvitation extends Authenticatable implements MustVerifyEmail
21{
22    use Billable, CustomHasRoles, Notifiable, HasApiTokens, HasFactory, UserHasTeams, SoftDeletes;
23
24    protected $fillable = [
25        "admin_email",
26        "status",
27        "email",
28        "plan_id",
29        "plan",
30        "company_id",
31        "company_group_id",
32        "company_subgroup_id",
33        "temp_password_expiry",
34        "temp_password",
35        "password",
36        "role_name",
37        "has_corporate_plan",
38        "move_assign",
39        "user_info_id"
40    ];
41
42    protected $appends = [
43        'status',
44    ];
45
46    public function company()
47    {
48        return $this->belongsTo(Company::class);
49    }
50
51    public function plan()
52    {
53        return $this->belongsTo(Plans::class);
54    }
55
56    public function company_group()
57    {
58        return $this->belongsTo(CompanyGroup::class, 'company_group_id');
59    }
60
61    public function company_subgroup()
62    {
63        return $this->belongsTo(CompanyGroup::class, 'company_subgroup_id');
64    }
65
66    public function getInvitationLinkForAdminPortal()
67    {
68        return config('romeo.frontend-base-url') . "/session/signup?email=" . $this->email;
69    }
70
71    public function subscription($type = "main")
72    {
73        if ($type == "invitation") {
74            $plan = Plans::find($this->plan_id);
75
76            return $plan;
77        }
78    }
79
80    public function getStatusAttribute()
81    {
82        return "Invited";
83    }
84
85    public function sendPasswordResetNotification($token)
86    {
87        $this->notify(new ResetPassword($token));
88    }
89
90    public function user()
91    {
92        return $this->belongsTo(User::class, 'email', 'email');
93    }
94}