| Server IP : 35.80.110.71 / Your IP : 216.73.216.221 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/switchyard/releases/20260707190617/app/Models/ |
Upload File : |
<?php
namespace App\Models;
use App\Enums\DestinationKind;
use App\Enums\LeadEventKind;
use App\Models\Concerns\BelongsToWorkspace;
use Illuminate\Database\Eloquent\Concerns\HasUlids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Destination extends Model
{
use BelongsToWorkspace;
use HasFactory;
use HasUlids;
protected $fillable = [
'workspace_id',
'slug',
'name',
'kind',
'trigger_event',
'is_enabled',
'min_score',
'service_tags_include',
'config',
'last_dispatched_at',
'last_error',
'last_error_at',
];
protected $hidden = [
'config',
];
protected function casts(): array
{
return [
'kind' => DestinationKind::class,
'trigger_event' => LeadEventKind::class,
'is_enabled' => 'boolean',
'service_tags_include' => 'array',
'config' => 'array',
'last_dispatched_at' => 'datetime',
'last_error_at' => 'datetime',
];
}
public function workspace(): BelongsTo
{
return $this->belongsTo(Workspace::class);
}
public function dispatches(): HasMany
{
return $this->hasMany(DestinationDispatch::class);
}
public function matchesLead(Lead $lead): bool
{
if ($this->min_score !== null && (int) $lead->lead_score < (int) $this->min_score) {
return false;
}
$tags = $this->service_tags_include;
if (is_array($tags) && $tags !== []) {
if ($lead->service_tag === null || ! in_array($lead->service_tag, $tags, true)) {
return false;
}
}
return true;
}
}