| 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/current/app/Models/ |
Upload File : |
<?php
namespace App\Models;
use App\Enums\LeadStatus;
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 Lead extends Model
{
use BelongsToWorkspace;
use HasFactory;
use HasUlids;
protected $fillable = [
'workspace_id',
'source_id',
'external_ref',
'raw_payload',
'parsed_contact',
'parsed_job',
'service_tag',
'suggested_examples',
'lead_score',
'status',
'clickup_task_id',
'routed_at',
'won_at',
'lost_at',
'dismissed_at',
];
protected function casts(): array
{
return [
'raw_payload' => 'array',
'parsed_contact' => 'array',
'parsed_job' => 'array',
'suggested_examples' => 'array',
'status' => LeadStatus::class,
'routed_at' => 'datetime',
'won_at' => 'datetime',
'lost_at' => 'datetime',
'dismissed_at' => 'datetime',
];
}
public function workspace(): BelongsTo
{
return $this->belongsTo(Workspace::class);
}
public function source(): BelongsTo
{
return $this->belongsTo(LeadSource::class, 'source_id');
}
public function events(): HasMany
{
return $this->hasMany(LeadEvent::class);
}
public function isRouted(): bool
{
return $this->clickup_task_id !== null;
}
}