<?php

namespace App\Interfaces;

use Carbon\Carbon;

interface ServiceItem
{
	/**
	 * Months the service is contracted for.
	 *
	 * @return int
	 */
	public function getContractTermAttribute(): int;

	/**
	 * Return the Service Description.
	 *
	 * @return string
	 */
	public function getServiceDescriptionAttribute(): string;

	/**
	 * Date the service expires
	 */
	public function getServiceExpireAttribute(): ?Carbon;

	/**
	 * Return the Service Name.
	 *
	 * @return string
	 */
	public function getServiceNameAttribute(): string;

	/**
	 * Has this service expired
	 *
	 * @return bool
	 */
	public function hasExpired(): bool;

	/**
	 * Is this service in a contract
	 *
	 * @return bool
	 */
	public function inContract(): bool;
}