<?php

namespace App\Models\Service;

use App\Interfaces\ServiceItem;
use App\Models\Base\ServiceType;
use App\Models\DomainTld;
use App\Models\HostServer;
use App\Traits\NextKey;

class Host extends ServiceType implements ServiceItem
{
	use NextKey;
	const RECORD_ID = 'service__hosting';

	protected $dates = [
		'host_expire',
	];
	protected $table = 'ab_service__hosting';

	public function provider()
	{
		return $this->belongsTo(HostServer::class,'host_server_id');
	}

	public function tld()
	{
		return $this->belongsTo(DomainTld::class,'domain_tld_id');
	}

	public function getServiceDescriptionAttribute(): string
	{
		// N/A
		return 'Hosting';
	}

	public function getServiceNameAttribute(): string
	{
		return sprintf('%s.%s',strtoupper($this->domain_name),strtoupper($this->tld->name));
	}

	public function inContract(): bool
	{
		return $this->host_expire->isFuture();
	}
}