<?php

namespace App\Models\Service;

use App\Interfaces\ServiceItem;
use App\Models\Base\ServiceType;
use App\Traits\NextKey;
use Carbon\Carbon;

class Voip extends ServiceType implements ServiceItem
{
	use NextKey;
	const RECORD_ID = 'service__adsl';

	protected $dates = [
		'service_connect_date',
		'service_contract_date',
	];
	protected $table = 'ab_service__voip';

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

	public function getServiceExpireAttribute(): Carbon
	{
		// TODO: Implement getServiceExpireAttribute() method.
	}

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

	public function inContract(): bool
	{
		return $this->service_contract_date AND $this->service_contract_date->addMonths($this->contract_term)->isFuture();
	}
}