<?php

namespace App\Models\Service;

/**
 * Class Phone (Service)
 * Services that are Voice Telephony
 */
class Phone extends Type
{
	protected $dates = [
		'connect_at',
		'expire_at',
	];
	protected $table = 'service_phone';

	/* ABSTRACT */

	/**
	 * Search for a record
	 *
	 * @param        $query
	 * @param string $term
	 * @return mixed
	 */
	public function scopeSearch($query,string $term)
	{
		// Build our where clause
		return parent::scopeSearch($query,$term)
			->orwhere('service_number','like','%'.$term.'%')
			->orWhere('service_address','like','%'.$term.'%');
	}

	/* INTERFACES */

	/**
	 * Return the service address
	 *
	 * @return string
	 */
	public function getServiceDescriptionAttribute(): string
	{
		return strtoupper($this->service_address) ?: '-';
	}

	/**
	 * Return the service number
	 *
	 * @return string
	 */
	public function getServiceNameAttribute(): string
	{
		return $this->service_number ?: ($this->service_address ?: '-');
	}

	/* ATTRIBUTES */

	/**
	 * The type of technology used to provide this Internet Service
	 *
	 * @param $value
	 * @return null|string
	 */
	public function getTechnologyAttribute($value): ?string
	{
		return $value ?: $this->supplied()->technology;
	}
}