����JFIF��x�x����'
Server IP : 66.29.137.217 / Your IP : 18.116.242.144 Web Server : LiteSpeed System : Linux premium294.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : gltevjme ( 1095) PHP Version : 7.0.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/gltevjme/cbt.gltechlimited.com/app/Models/ |
Upload File : |
<?php /** * File name: User.php * Last modified: 19/07/21, 10:54 PM * Author: NearCraft - https://codecanyon.net/user/nearcraft * Copyright (c) 2021 */ namespace App\Models; use App\Traits\SecureDeletes; use App\Traits\SubscriptionTrait; use App\Traits\SyllabusTrait; use Bavix\Wallet\Interfaces\Wallet; use Bavix\Wallet\Traits\HasWallet; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Fortify\TwoFactorAuthenticatable; use Laravel\Jetstream\HasProfilePhoto; use Laravel\Sanctum\HasApiTokens; use Spatie\Permission\Traits\HasRoles; use App\Filters\QueryFilter; use Spatie\SchemalessAttributes\SchemalessAttributesTrait; use Illuminate\Database\Eloquent\Builder; class User extends Authenticatable implements Wallet, MustVerifyEmail { use HasApiTokens; use HasFactory; use HasProfilePhoto; use Notifiable; use TwoFactorAuthenticatable; use SchemalessAttributesTrait; use HasRoles; use HasWallet; use SoftDeletes; use SecureDeletes; use SubscriptionTrait; use SyllabusTrait; /* |-------------------------------------------------------------------------- | GLOBAL VARIABLES |-------------------------------------------------------------------------- */ protected $fillable = [ 'first_name', 'last_name', 'user_name', 'mobile', 'email', 'password', 'is_active', 'preferences', 'email_verified_at' ]; protected $hidden = [ 'password', 'remember_token', 'two_factor_recovery_codes', 'two_factor_secret', 'verification_code', ]; protected $casts = [ 'email_verified_at' => 'datetime', 'mobile_verified_at' => 'datetime', 'is_active' => 'boolean', ]; protected $appends = [ 'profile_photo_url', 'role_id', 'wallet_balance', ]; protected $schemalessAttributes = [ 'preferences', ]; /* |-------------------------------------------------------------------------- | FUNCTIONS |-------------------------------------------------------------------------- */ /* |-------------------------------------------------------------------------- | RELATIONS |-------------------------------------------------------------------------- */ public function userGroups() { return $this->belongsToMany(UserGroup::class, 'user_group_users', 'user_id', 'user_group_id') ->withPivot('joined_at'); } public function practiceSessions() { return $this->hasMany(PracticeSession::class); } public function quizSessions() { return $this->hasMany(QuizSession::class); } public function examSessions() { return $this->hasMany(ExamSession::class); } public function payments() { return $this->hasMany(Payment::class); } public function subscriptions() { return $this->hasMany(Subscription::class); } /* |-------------------------------------------------------------------------- | SCOPES |-------------------------------------------------------------------------- */ public function scopeFilter($query, QueryFilter $filters) { return $filters->apply($query); } public function scopeActive($query) { $query->where('is_active', true); } public function scopeWithPreferencesAttributes(): Builder { return $this->preferences->modelScope(); } /* |-------------------------------------------------------------------------- | ACCESSORS |-------------------------------------------------------------------------- */ public function getFullNameAttribute() { return "{$this->first_name} {$this->last_name}"; } public function getWalletBalanceAttribute() { return $this->balance; } public function getRoleIdAttribute() { return $this->roles->count() > 0 ? $this->roles->first()->name : null; } /* |-------------------------------------------------------------------------- | MUTATORS |-------------------------------------------------------------------------- */ }