<?php

namespace App;

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

class Scene extends BaseModel
{
    use HasFactory;
    
    protected $table = 'scenes';
    
    protected $fillable = ['id', 'name', 'slug', 'image', 'parent_id', 'description', 'position', 'is_activated', 'is_deleted',  'created_at', 'updated_at'];

    public function parent() {
        return $this->belongsTo(Scene::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(Scene::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(Scene::class, 'parent_id', 'id')
            ->select('id', 'name', 'slug', 'parent_id')
            ->where('is_deleted', false)
            ->where('is_activated', true)
            ->orderBy('position')
            ->orderBy('id', 'ASC');
    }
}
