format('Y-m-d H:i:s'); } // Relationship to the Menu public function menu() { return $this->belongsTo(Menu::class, 'menu_id'); } // Self-referencing relationship to parent MenuMapping public function parentMenuMapping() { return $this->belongsTo(MenuMapping::class, 'parent_menu_mapping_id'); } // Self-referencing relationship to child MenuMappings public function childMenuMappings() { return $this->hasMany(MenuMapping::class, 'parent_menu_mapping_id'); } // Relationship to MenuCategory public function category() { return $this->belongsTo(MenuCategory::class, 'menu_category_id'); } // Relationship to Article (main article) public function article() { return $this->belongsTo(Article::class, 'article_id'); } public function alternatearticle() { return $this->belongsTo(Article::class, 'alternate_article_id'); } // Relationship to Parent Article public function parentArticle() { return $this->belongsTo(Article::class, 'parent_article_id'); } // Relationship to ArticleCategory public function articleCategory() { return $this->belongsTo(ArticleCategory::class, 'article_category_id'); } // Relationship to ArticlePackage public function articlePackage() { return $this->belongsTo(ArticlePackage::class, 'article_package_id'); } // Function to get the article's type public function getArticleTypeAttribute() { return $this->article ? $this->article->article_type : null; } // Function to get the default article package public function defaultArticlePackage() { return $this->article ? $this->article->packages()->where('default_package', 1)->first() : null; } }