<?php

namespace App;

class Area extends BaseModel
{
    protected $table = 'areas';

    protected $appends = ['childCount'];

    protected $fillable = ['id', 'name', 'slug', 'description', 'logo', 'title', 'sub_title', 'link', 'show_top', 'show_search', 'parent_id', 'order', '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);
    }

    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('order');
    }

    public function getChildCountAttribute() {
        return $this->item()->count();
    }
}
