| 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\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;
class ClickUpConfig extends Model
{
use BelongsToWorkspace;
use HasFactory;
use HasUlids;
protected $table = 'clickup_configs';
protected $fillable = [
'workspace_id',
'inbound_list_id',
'status_mapping',
'custom_field_mapping',
'default_assignee_user_id',
'default_priority',
'service_taxonomy',
'portfolio_examples',
'auto_route_enabled',
];
protected function casts(): array
{
return [
'status_mapping' => 'array',
'custom_field_mapping' => 'array',
'service_taxonomy' => 'array',
'portfolio_examples' => 'array',
'auto_route_enabled' => 'boolean',
];
}
public function workspace(): BelongsTo
{
return $this->belongsTo(Workspace::class);
}
public function tagFor(string $needle): ?string
{
$taxonomy = $this->service_taxonomy ?? [];
$haystack = mb_strtolower($needle);
foreach ($taxonomy as $tag => $keywords) {
foreach ((array) $keywords as $keyword) {
if ($keyword !== '' && str_contains($haystack, mb_strtolower($keyword))) {
return $tag;
}
}
}
return null;
}
public function examplesFor(string $tag): array
{
$examples = $this->portfolio_examples ?? [];
return (array) ($examples[$tag] ?? []);
}
}