Files
cssd-back/app/Models/User.php
T
2024-11-23 22:14:01 +03:30

85 lines
1.9 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use Notifiable, HasApiTokens, HasRoles, HasFactory;
protected $fillable = [
'name', 'email', 'cell_number', 'password', 'status', 'medical_center_id', 'address',
'gender'
];
protected $hidden = [
'password', 'remember_token',
];
protected $casts = [
'email_verified_at' => 'datetime',
];
public function medical_center(): BelongsTo
{
return $this->belongsTo(MedicalCenter::class);
}
public function test_results(): HasMany
{
return $this->hasMany(TestResult::class);
}
public function test_types(): HasMany
{
return $this->hasMany(TestType::class);
}
public function findForPassport($username)
{
return $this->where('cell_number', $username)->where('status', 'Active')->first();
}
public function messagesSent(): HasMany
{
return $this->hasMany(Message::class, 'sender_user_id');
}
public function messagesReceived(): HasMany
{
return $this->hasMany(Message::class, 'recipient_user_id');
}
public function packages(): HasMany
{
return $this->hasMany(Package::class);
}
public function items(): HasMany
{
return $this->hasMany(Item::class);
}
public function labels(): HasMany
{
return $this->hasMany(Label::class);
}
public function cycles(): HasMany
{
return $this->hasMany(Cycle::class);
}
public function galleries(): HasMany
{
return $this->hasMany(Gallery::class);
}
}