File: /home/xedaptot/be.naniguide.com/app/Model/FunnelStepTemplate.php
<?php
namespace App\Model;
use Illuminate\Database\Eloquent\Model;
use App\Library\Contracts\TemplateSubjectInterface;
use App\Library\Traits\HasUid;
use App\Services\TemplateService;
class FunnelStepTemplate extends Model implements TemplateSubjectInterface
{
use HasUid;
protected $fillable = [
'name', 'tags', 'description', 'image',
];
// -------------------------------------------------------------------------
// Relationships
// -------------------------------------------------------------------------
public function template()
{
return $this->belongsTo(Template::class);
}
// -------------------------------------------------------------------------
// Scopes
// -------------------------------------------------------------------------
public function scopeByTag($query, $tag)
{
if ($tag) {
$query->where('tags', 'like', '%' . trim($tag) . '%');
}
}
// -------------------------------------------------------------------------
// Helpers
// -------------------------------------------------------------------------
public function getTagsArray(): array
{
if (empty($this->tags)) {
return [];
}
return array_map('trim', explode(',', $this->tags));
}
public function getImageUrl()
{
if ($this->image) {
return asset('storage/funnel_step_templates/' . $this->image);
}
return url('images/placeholder.jpg');
}
public function deleteAndCleanup(): void
{
TemplateService::for($this)->deleteSubjectAndTemplate();
}
}