<?php

namespace App\Models;

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

class Area extends Model
{
//    use HasFactory;
    public static $allSegments = [
        'ads',
        'attachment',
        'attachments',
        'attachments_page',
        'card',
        'categories',
//        'categories_page',
        'category',
        'comments',
        'contact',
        'clip',
        'clips',
        'clips_page',
        'comments',
        'compare',
        'customer',
        'floats',
        'footer',
        'galleries',
        'galleries_page',
        'gallery',
        'group',
        'groups',
//        'groups_page',
        'header',
        'index',
        'invoice',
        'login',
        'menu',
        'other',
        'parallax',
        'post',
        'posts',
        'posts_page',
        'preloader',
        'product',
        'products',
        'product_grid',
        'products_page',
        'register',
        'questions',
        'search',
        'slider',
        'top',
    ];

    protected $casts = [
        'segments',
    ];

    public function getSegmentAttribute()
    {
        return json_decode($this->valid_segments, true);
    }


    public function getRouteKeyName()
    {
        return 'name';
    }

    public function parts()
    {
        return $this->hasMany(Part::class);
    }

    public function defPart()
    {
        $p = $this->parts()->first();
        return 'segments.' . $p->segment . '.' . $p->part . '.' . $p->part;
    }
}