Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
75.00% covered (warning)
75.00%
3 / 4
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
UserPersona
75.00% covered (warning)
75.00%
3 / 4
66.67% covered (warning)
66.67%
2 / 3
3.14
0.00% covered (danger)
0.00%
0 / 1
 prompt_tone
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 user
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 boot
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace App\Http\Models;
4
5use App\Http\Models\Auth\User;
6use App\Http\Scopes\UserScope;
7use Illuminate\Database\Eloquent\Factories\HasFactory;
8use MongoDB\Laravel\Eloquent\SoftDeletes;
9
10class UserPersona extends Moloquent
11{
12    use HasFactory, SoftDeletes;
13
14    protected $table = 'user_persona';
15
16    protected $fillable = [
17        'user_id',
18        'is_default',
19        'name',
20        'professional_interests',
21        'first_name',
22        'last_name',
23        'industry',
24        'prompt_tone_id',
25        'type',
26        'linkedin_url',
27        'achievements',
28        'preferred_keywords_and_phrases',
29        'communication_style',
30        'company_name',
31        'education_background',
32        'field_of_expertise',
33        'goals',
34        'hobbies',
35        'personal_interests',
36        'skills',
37        'taboos',
38        'title',
39        'content',
40        'networking',
41        'personal_info',
42        'ai_emulation',
43        'updated_at',
44        'created_at',
45        'deleted_at',
46        'disabled',
47    ];
48
49    public function prompt_tone()
50    {
51        return $this->belongsTo(PromptTone::class, 'prompt_tone_id');
52    }
53
54    public function user()
55    {
56        return $this->belongsTo(User::class, 'user_id');
57    }
58
59    /**
60     * The "booting" method of the model.
61     */
62    protected static function boot(): void
63    {
64        parent::boot();
65        // Return only personas belonging to the logged in user
66        static::addGlobalScope(new UserScope);
67    }
68}