$hashtags * @property-read int|null $hashtags_count * @property-read \Illuminate\Database\Eloquent\Collection $items * @property-read int|null $items_count * @property-read \App\Models\Media|null $media * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory newQuery() * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory query() * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory whereActive($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory whereActiveUntil($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory whereCreatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory whereLocalOnly($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory whereMediaId($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory whereName($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory whereNoNsfw($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory whereOrder($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory wherePhotosOnly($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory wherePublicOnly($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory whereSlug($value) * @method static \Illuminate\Database\Eloquent\Builder|DiscoverCategory whereUpdatedAt($value) * @mixin \Eloquent */ class DiscoverCategory extends Model { protected $guarded = []; public function media() { return $this->belongsTo(Media::class); } public function url() { return url('/discover/c/'.$this->slug); } public function editUrl() { return url('/i/admin/discover/category/edit/'.$this->id); } public function thumb() { return $this->media->thumb(); } public function mediaUrl() { return $this->media->url(); } public function items() { return $this->hasMany(DiscoverCategoryHashtag::class, 'discover_category_id'); } public function hashtags() { return $this->hasManyThrough( Hashtag::class, DiscoverCategoryHashtag::class, 'discover_category_id', 'id', 'id', 'hashtag_id' ); } public function posts() { return Status::select('*') ->join('status_hashtags', 'statuses.id', '=', 'status_hashtags.status_id') ->join('hashtags', 'status_hashtags.hashtag_id', '=', 'hashtags.id') ->join('discover_category_hashtags', 'hashtags.id', '=', 'discover_category_hashtags.hashtag_id') ->join('discover_categories', 'discover_category_hashtags.discover_category_id', '=', 'discover_categories.id') ->where('discover_categories.id', $this->id); } }