<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Spatie\Translatable\HasTranslations;

class Item extends Model
{
    use HasFactory,HasTranslations;

    public $translatable = ['title'];

    public function menu()
    {
        return $this->belongsTo(Menu::class, 'menu_id', 'id');
    }


    public function parent()
    {
        return $this->belongsTo(Item::class, 'parent');
    }

    public function children()
    {
        return $this->hasMany(Item::class, 'parent');
    }

    public function dest(){
        return $this->morphTo('menuable','menuable_type','menuable_id');
    }

    public function webUrl(){
        if ($this->kind == 'direct'){

            if ( config('app.xlang.active') && app()->getLocale() != config('app.xlang.main')){
                if ($this->meta[0] != '/'){

                    $welcome = \route('client.welcome');
                    return str_replace($welcome,$welcome .'/'.app()->getLocale(),$this->meta);
                }else{
                    return  '/'.app()->getLocale() . $this->meta;
                }
            }
            return $this->meta;
        }else{
            return $this->dest->webUrl();
        }
    }
}