osb/app/Models/Supplier/Domain.php

48 lines
906 B
PHP
Raw Normal View History

2022-02-01 05:40:46 +00:00
<?php
namespace App\Models\Supplier;
use Illuminate\Support\Collection;
2022-02-01 05:40:46 +00:00
use App\Models\Product\Domain as ProductDomain;
use App\Models\TLD;
2023-05-05 05:48:24 +00:00
final class Domain extends Type
2022-02-01 05:40:46 +00:00
{
2023-05-05 05:48:24 +00:00
protected const category_name = 'Domain';
2022-02-01 05:40:46 +00:00
protected $table = 'supplier_domain';
2023-05-05 05:48:24 +00:00
// The model of the product that is supplied by this model
const ProductModel = ProductDomain::class;
2022-02-01 05:40:46 +00:00
2023-05-05 05:48:24 +00:00
/* INTERFACES */
2022-02-01 05:40:46 +00:00
public function getNameAttribute(): string
{
return sprintf('%s: %s',$this->product_id,$this->tld->name);
}
/* STATIC */
/**
* Determine the owner of the name servers used for the domain
*
*/
public static function nameserver_name(Collection $nameservers): string
{
foreach (config('nameservers') as $key => $ns) {
if ($nameservers->diff($ns)->count() < count($ns))
return $key;
}
return 'custom';
}
2022-02-01 05:40:46 +00:00
/* RELATIONS */
public function tld()
{
return $this->belongsTo(TLD::class);
}
}