belongsToMany(StudioPlusAsin::class, 'studio_plus_incentive_asins', 'studio_plus_incentive_id'); } public function incentiveCategory() { return $this->belongsTo(StudioPlusIncentiveCategory::class, 'incentive_category_id'); } public function videoTypes() { return $this->belongsToMany(StudioPlusVideoType::class, 'studio_plus_incentive_video_types', 'studio_plus_incentive_id', 'studio_plus_video_type_id'); } public function roles() { return $this->belongsToMany(Role::class, 'studio_plus_incentive_roles', 'studio_plus_incentive_id', 'role_id'); } public function contentTypes() { return $this->belongsToMany(ContentType::class, 'studio_plus_incentive_content_types', 'studio_plus_incentive_id', 'content_type_id'); } public function contentVariants() { return $this->belongsToMany(ContentVariant::class, 'studio_plus_incentive_content_variants', 'studio_plus_incentive_id', 'content_variant_id'); } public function getAsinValuesAttribute() { return $this->asins()->pluck('range_amount')->join(', '); } public function getRoleNamesAttribute() { return $this->roles()->pluck('name')->join(', '); } public function getContentTypeNamesAttribute() { return $this->contentTypes()->pluck('name')->join(', '); } public function getContentVariantNamesAttribute() { return $this->contentVariants()->pluck('name')->join(', '); } public function getVideoTypeNamesAttribute() { return $this->videoTypes()->pluck('name')->join(', '); } }