uawdijnntqw1x1x1
IP : 216.73.216.93
Hostname : panel.codeskitter.com
Kernel : Linux panel.codeskitter.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
Disable Function : apache_child_terminate, apache_note, apache_setenv, define_syslog_variables, dl, link, opcache_get_status, openlog, pcntl_exec, pcntl_fork, pcntl_setpriority, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid
OS : Linux
PATH:
/
home
/
users
/
unlimited
/
www
/
admin.eclassify.codeskitter.site
/
app
/
Models
/
Item.php
/
/
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Storage; class Item extends Model { use HasFactory, SoftDeletes; protected $fillable = [ 'category_id', 'name', 'price', 'description', 'latitude', 'longitude', 'address', 'contact', 'show_only_to_premium', 'video_link', 'status', 'rejected_reason', 'user_id', 'image', 'country', 'state', 'city', 'area_id', 'all_category_ids', 'slug', 'sold_to', 'expiry_date', 'min_salary', 'max_salary', 'is_edited_by_admin', 'admin_edit_reason' ]; // Relationships public function user() { return $this->belongsTo(User::class); } public function category() { return $this->hasOne(Category::class, 'id', 'category_id'); } public function gallery_images() { return $this->hasMany(ItemImages::class); } public function custom_fields() { return $this->hasManyThrough( CustomField::class, CustomFieldCategory::class, 'category_id', 'id', 'category_id', 'custom_field_id' ); } public function item_custom_field_values() { return $this->hasMany(ItemCustomFieldValue::class,'item_id'); } public function featured_items() { return $this->hasMany(FeaturedItems::class)->onlyActive(); } public function favourites() { return $this->hasMany(Favourite::class); } public function item_offers() { return $this->hasMany(ItemOffer::class); } public function user_reports() { return $this->hasMany(UserReports::class); } public function sliders(): MorphMany { return $this->morphMany(Slider::class, 'model'); } public function area() { return $this->belongsTo(Area::class); } public function review() { return $this->hasMany(SellerRating::class); } public function job_applications() { return $this->hasMany(JobApplication::class); } // Accessors public function getImageAttribute($image) { return !empty($image) ? url(Storage::url($image)) : $image; } public function getStatusAttribute($value) { if ($this->deleted_at) { return "inactive"; } if ($this->expiry_date && $this->expiry_date < Carbon::now()) { return "expired"; } return $value; } // Scopes public function scopeSearch($query, $search) { $search = "%" . $search . "%"; return $query->where(function ($q) use ($search) { $q->orWhere('name', 'LIKE', $search) ->orWhere('description', 'LIKE', $search) ->orWhere('price', 'LIKE', $search) ->orWhere('image', 'LIKE', $search) ->orWhere('latitude', 'LIKE', $search) ->orWhere('longitude', 'LIKE', $search) ->orWhere('address', 'LIKE', $search) ->orWhere('contact', 'LIKE', $search) ->orWhere('show_only_to_premium', 'LIKE', $search) ->orWhere('status', 'LIKE', $search) ->orWhere('video_link', 'LIKE', $search) ->orWhere('clicks', 'LIKE', $search) ->orWhere('user_id', 'LIKE', $search) ->orWhere('country', 'LIKE', $search) ->orWhere('state', 'LIKE', $search) ->orWhere('city', 'LIKE', $search) ->orWhere('category_id', 'LIKE', $search) ->orWhereHas('category', function ($q) use ($search) { $q->where('name', 'LIKE', $search); })->orWhereHas('user', function ($q) use ($search) { $q->where('name', 'LIKE', $search); }); }); } public function scopeOwner($query) { if (Auth::user()->hasRole('User')) { return $query->where('user_id', Auth::user()->id); } return $query; } public function scopeApproved($query) { return $query->where('status', 'approved'); } public function scopeNotOwner($query) { return $query->where('user_id', '!=', Auth::user()->id); } public function scopeSort($query, $column, $order) { if ($column == "user_name") { return $query->leftJoin('users', 'users.id', '=', 'items.user_id') ->orderBy('users.name', $order) ->select('items.*'); } return $query->orderBy($column, $order); } public function scopeFilter($query, $filterObject) { if (!empty($filterObject)) { foreach ($filterObject as $column => $value) { if ($column == 'status') { if ($value == 'inactive') { $query->whereNotNull('deleted_at')->where(function ($q) { $q->whereNull('expiry_date') ->orWhere('expiry_date', '>=', Carbon::now()); }); } elseif ($value == 'expired') { $query->whereNotNull('expiry_date') ->where('expiry_date', '<', Carbon::now())->whereNull('deleted_at'); } else { if (in_array($value, ['review', 'approved', 'rejected', 'sold out', 'soft rejected', 'permanent rejected', 'resubmitted'])) { $query->whereNull('deleted_at') ->where(function ($q) { $q->whereNull('expiry_date') ->orWhere('expiry_date', '>=', Carbon::now()); }); } $query->where($column, $value); } }elseif ($column == 'featured_status') { if ($value == 'featured') { $query->whereHas('featured_items'); } elseif ($value == 'premium') { $query->whereDoesntHave('featured_items'); } } elseif (in_array($column, ['country', 'state', 'city'])) { $query->where($column, 'LIKE', '%' . $value . '%'); } else { $query->where((string)$column, (string)$value); } } } return $query; } public function scopeOnlyNonBlockedUsers($query) { $blocked_user_ids = BlockUser::where('user_id', Auth::user()->id) ->pluck('blocked_user_id'); return $query->whereNotIn('user_id', $blocked_user_ids); } public function scopeGetNonExpiredItems($query) { return $query->where(function($query) { $query->where('expiry_date', '>', Carbon::now())->orWhereNull('expiry_date'); }); } public function scopeIsJobCategory($query, $isJob = 1) { return $query->whereHas('category', function ($q) use ($isJob) { $q->where('is_job_category', $isJob); }); } public function scopePriceOptional($query, $isJob = 1) { return $query->whereHas('category', function ($q) use ($isJob) { $q->where('price_optional', $isJob); }); } }
/home/users/unlimited/www/admin.eclassify.codeskitter.site/app/Models/Item.php