ProductLayout::ColumnWithImage->value, 'search_group_layout' => GroupLayout::Paginated->value, 'search_items_per_page' => 12, ]; public function getRouteKeyName(): string { return 'codigo'; } /** * Get the attributes that should be cast. * * @return array */ protected function casts(): array { return [ 'hero_config' => 'array', 'event_config' => 'array', 'search_product_layout' => ProductLayout::class, 'search_group_layout' => GroupLayout::class, 'search_items_per_page' => 'integer', ]; } /** * @return BelongsTo */ public function headerLogo(): BelongsTo { return $this->belongsTo(Attachment::class, 'header_logo_id'); } /** * @return BelongsTo */ public function footerLogo(): BelongsTo { return $this->belongsTo(Attachment::class, 'footer_logo_id'); } /** * @return BelongsTo */ public function heroBgImage(): BelongsTo { return $this->belongsTo(Attachment::class, 'hero_bg_image_id'); } /** * @return BelongsToMany */ public function mainCarouselImages(): BelongsToMany { return $this->belongsToMany( Attachment::class, 'tenant_main_carousel_images', 'tenant_id', 'attachment_id' ) ->withPivot('orden') ->withTimestamps() ->orderByPivot('orden'); } public function catalogItems(): HasMany { return $this->hasMany(CatalogItem::class, 'tenant_code', 'codigo'); } /** * @return BelongsToMany */ public function socialMedia(): BelongsToMany { return $this->belongsToMany( SocialMedia::class, 'tenant_social_media', 'tenant_code', 'social_media_code', 'codigo', 'code' ) ->withPivot(['url', 'orden']) ->withTimestamps() ->orderByPivot('orden'); } public function menues(): BelongsToMany { return $this->belongsToMany( Menu::class, 'tenants_menues', 'tenant_code', 'menu_code', 'codigo', 'code' ) ->using(TenantMenu::class) ->withPivot('static_content') ->withTimestamps(); } }