<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

use App\Traits\{QueryCacheableConfig,ScopeActive};

class Zone extends Model
{
	use ScopeActive;

	/* SCOPES */

	public function scopeDomainZoneOrder($query)
	{
		return $query
			->select('zones.*')
			->join('domains',['domains.id'=>'zones.domain_id'])
			->orderBy('domains.name')
			->orderBy('zone_id');
	}

	/* RELATIONS */

	public function addresses()
	{
		return $this->hasMany(Address::class)
			->active()
			->FTNorder()
			->with(['system.sessions','system.setup','zone.domain']);
	}

	public function domain()
	{
		return $this->belongsTo(Domain::class);
	}

	public function system()
	{
		return $this->belongsTo(System::class);
	}

	/**
	 * Get the default route for this zone
	 */
	public function systems()
	{
		return $this->belongsToMany(System::class)
			->withPivot(['default']);
	}
}