⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.78
Server IP:
50.6.168.112
Server:
Linux server-617809.webnetzimbabwe.com 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64
Server Software:
Apache
PHP Version:
8.4.10
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
ctaacademy
/
public_html
/
app
/
Models
/
View File Name :
User.php
*/ protected $fillable = [ 'id', 'role', 'name', 'email', 'password', 'status', 'is_banned', 'verification_token', 'forget_password_token', 'email_verified_at', ]; /** * The attributes that should be hidden for serialization. * * @var array
*/ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast. * * @var array
*/ protected $casts = [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; public function favoriteCourses() { return $this->belongsToMany(Course::class, 'favorite_course_user')->withTimestamps(); } public function scopeActive($query) { return $query->where('status', UserStatus::ACTIVE); } public function scopeInactive($query) { return $query->where('status', UserStatus::DEACTIVE); } public function scopeBanned($query) { return $query->where('is_banned', UserStatus::BANNED); } public function scopeUnbanned($query) { return $query->where('is_banned', UserStatus::UNBANNED); } public function socialite() { return $this->hasMany(SocialiteCredential::class, 'user_id'); } function instructorInfo(): HasOne { return $this->hasOne(InstructorRequest::class, 'user_id', 'id'); } public function courses() { return $this->hasMany(Course::class, 'instructor_id'); } function enrollments(): HasMany { return $this->hasMany(Enrollment::class, 'user_id', 'id'); } function country(): BelongsTo { return $this->belongsTo(Country::class, 'country_id'); } function orders(): HasMany { return $this->hasMany(Order::class, 'buyer_id', 'id'); } function zoom_credential(): HasOne { return $this->hasOne(ZoomCredential::class, 'instructor_id', 'id'); } function jitsi_credential(): HasOne { return $this->hasOne(JitsiSetting::class, 'instructor_id', 'id'); } public function carts() { return $this->hasMany(Cart::class, 'user_id', 'id')->whereHas('course', function ($query) { $query->where(['is_approved' => 'approved', 'status' => 'active']); }); } // Accessor for cart count public function getCartCountAttribute() { return $this->carts()->sum('qty'); } public function getCartTotalAttribute() { return $this->carts()->join('courses', 'courses.id', '=', 'carts.course_id')->selectRaw('SUM(carts.qty * IFNULL(NULLIF(courses.discount, 0), courses.price)) as total')->value('total') ?? 0; } /** * Boot the model. */ protected static function boot() { parent::boot(); static::deleting(function ($user) { // Delete related instructor request $user->instructorInfo()->delete(); }); } }