*/ use HasFactory; protected $fillable = [ 'project_id', 'name', 'color', ]; protected $casts = [ 'project_id' => 'int', ]; /** * @return BelongsTo */ public function project(): BelongsTo { return $this->belongsTo(Project::class); } /** * @return MorphToMany */ public function servers(): MorphToMany { return $this->morphedByMany(Server::class, 'taggable'); } /** * @return MorphToMany */ public function sites(): MorphToMany { return $this->morphedByMany(Site::class, 'taggable'); } /** * @return Builder */ public static function getByProjectId(int $projectId): Builder { /** @var Builder $query */ $query = static::query(); return $query ->where(function (Builder $query) use ($projectId): void { $query->where('project_id', $projectId)->orWhereNull('project_id'); }); } }