PATH:
home
/
rwabteecom
/
project_11
/
app
/
Models
/
Editing: User.php
<?php namespace App\Models; use App\Enums\StatusEnum; use App\Enums\UserEnum; use App\Traits\HandleAccessTokenCreationTrait; use App\Traits\SearchTrait; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; use Overtrue\LaravelFollow\Traits\Follower; use Overtrue\LaravelFollow\Traits\Followable; class User extends Authenticatable implements MustVerifyEmail, HasMedia { use HandleAccessTokenCreationTrait; use Notifiable; use SoftDeletes; use InteractsWithMedia; use SearchTrait; use Follower; use Followable; protected $hidden = [ 'password', 'remember_token', ]; protected $casts = [ 'email_verified_at' => 'datetime', 'password' => 'hashed', 'hashed_otp' => 'hashed', "status" => StatusEnum::class, ]; public function registerMediaCollections(): void { $this->addMediaCollection(UserEnum::PROFILE_IMAGE->value)->singleFile(); } public function profileImage(): Attribute { return Attribute::get(function () { if ($this->hasMedia(UserEnum::PROFILE_IMAGE->value)) { return $this->getFirstMediaUrl(UserEnum::PROFILE_IMAGE->value); } return gs("default_user_image"); }); } public function plans(): HasMany { return $this->hasMany(UserPlan::class); } public function domain() { return $this->belongsTo(Domain::class,'domain_id'); } public function currentPlan(): HasOne { return $this->hasOne(UserPlan::class)->whereHas('invoice', fn($query) => $query->where("is_paid", 1))->latestOfMany(); } }
SAVE
CANCEL