⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.144
Server IP:
157.245.143.252
Server:
Linux www 6.11.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Oct 14 13:19:59 UTC 2024 x86_64
Server Software:
nginx/1.26.0
PHP Version:
8.3.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
audiostanding.com
/
app
/
Models
/
View File Name :
User.php
*/ protected $fillable = [ 'id', 'role', 'name', 'email', 'password', 'status', 'is_banned', 'verification_token', 'forget_password_token', ]; /** * 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 messagesSent() { return $this->hasMany(Message::class, 'sender_id'); } public function messagesReceived() { return $this->hasMany(Message::class, 'receiver_id'); } public function contactUsers() { return User::whereIn('id', $this->messagesSent()->pluck('receiver_id')) ->orWhereIn('id', $this->messagesReceived()->pluck('sender_id')) ->get(); } public function contactUsersWithUnseenMessages() { $contactUsers = User::whereIn('id', $this->messagesSent()->pluck('receiver_id')) ->orWhereIn('id', $this->messagesReceived()->pluck('sender_id')) ->select('id', 'name', 'email', 'image') ->get(); $contactUsersWithUnseenMessages = []; foreach ($contactUsers as $contactUser) { $unseenMessagesCount = Message::where('sender_id', $contactUser->id) ->where('receiver_id', $this->id) ->where('seen', 'no') ->count(); $lastMessage = Message::where(function ($query) use ($contactUser) { $query->where('sender_id', $this->id)->where('receiver_id', $contactUser->id); })->orWhere(function ($query) use ($contactUser) { $query->where('sender_id', $contactUser->id)->where('receiver_id', $this->id); })->latest('created_at')->first(); $contactUsersWithUnseenMessages[] = (object) [ 'id' => $contactUser->id, 'name' => $contactUser->name, 'email' => $contactUser->email, 'image' => $contactUser->image, 'new_message' => $unseenMessagesCount, 'last_message' => $lastMessage->created_at, ]; } usort($contactUsersWithUnseenMessages, function ($a, $b) { return $b->last_message <=> $a->last_message; }); return $contactUsersWithUnseenMessages; } 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 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'); } /** * Boot the model. */ protected static function boot() { parent::boot(); static::deleting(function ($user) { // Delete related instructor request $user->instructorInfo()->delete(); }); } }