<?php // this Code is Cracked by dharunMods-YouTube-Channel namespace App\Models; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Auth\Notifications\VerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Fortify\TwoFactorAuthenticatable; use Laravel\Jetstream\HasProfilePhoto; use App\Models\Settings; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable implements MustVerifyEmail { use HasApiTokens; use HasFactory; use HasProfilePhoto; use Notifiable; use TwoFactorAuthenticatable; /** * The attributes that are mass assignable. * * @var array */ protected $guarded = []; /** * Send the email verification notification. * * @return void */ public function sendEmailVerificationNotification() { $settings = Settings::where('id', 1)->first(); if ($settings->enable_verification == 'true') { $this->notify(new VerifyEmail); } } /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', 'two_factor_recovery_codes', 'two_factor_secret', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; /** * The accessors to append to the model's array form. * * @var array */ protected $appends = [ 'profile_photo_url', ]; public function dp() { return $this->hasMany(Deposit::class, 'user'); } public function wd() { return $this->hasMany(Withdrawal::class, 'user'); } public function tuser() { return $this->belongsTo(Admin::class, 'assign_to', 'id'); } public function dplan() { return $this->belongsTo(Plans::class, 'plan'); } public function courses() { return $this->belongsToMany(Course::class)->withTimestamps(); } public function plans() { return $this->hasMany(User_plans::class, 'user', 'id'); } public static function search($search): \Illuminate\Database\Eloquent\Builder { return empty($search) ? static::query() : static::query()->where('id', 'like', '%' . $search . '%') ->orWhere('name', 'like', '%' . $search . '%') ->orWhere('username', 'like', '%' . $search . '%') ->orWhere('email', 'like', '%' . $search . '%'); } }