<?php

namespace App;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Area extends BaseModel
{
    use HasFactory;
	
	protected $table = 'areas';
	
	protected $fillable = [
		'id', 'name', 'slug', 'parent_id', 'description', 'position', 'is_activated', 'is_deleted', 'created_at', 'updated_at'
	];
	
	public function parent() {
		return $this->belongsTo(Area::class, 'parent_id', 'id')
			->with('parent')
			->select('id', 'name', 'slug', 'parent_id')
			->where('is_deleted', false)
			->where('is_activated', true)
			->orderBy('position')
			->orderBy('id', 'ASC');
	}
	
	public function children() {
		return $this->hasMany(Area::class, 'parent_id', 'id')
			->with('children')
			->select('id', 'name', 'slug', 'parent_id')
			->where('is_deleted', false)
			->where('is_activated', true)
			->orderBy('position')
			->orderBy('id', 'ASC');
	}
	
	public function item() {
		return $this->hasMany(Area::class, 'parent_id', 'id')
			->select('id', 'name', 'slug', 'parent_id')
			->where('is_deleted', false)
			->where('is_activated', true)
			->orderBy('position')
			->orderBy('id', 'ASC');
	}
}
