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 [ 'search_product_layout' => ProductLayout::class, 'search_group_layout' => GroupLayout::class, 'search_items_per_page' => 'integer', 'active_event_id' => '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 websiteType(): BelongsTo { return $this->belongsTo(WebsiteType::class, 'website_type_code', 'codigo'); } public function catalogItems(): HasMany { return $this->hasMany(CatalogItem::class, 'tenant_code', 'codigo'); } /** @return HasMany */ public function events(): HasMany { return $this->hasMany(Event::class, 'tenant_code', 'codigo'); } /** @return BelongsTo */ public function activeEvent(): BelongsTo { return $this->belongsTo(Event::class, 'active_event_id'); } /** * @return HasMany */ public function categories(): HasMany { return $this->hasMany(Category::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'); } /** * @return HasMany */ public function websiteExtras(): HasMany { return $this->hasMany(WebsiteExtra::class, 'website_code', 'codigo'); } public function menues(): BelongsToMany { return $this->belongsToMany( Menu::class, 'tenants_menues', 'tenant_code', 'menu_code', 'codigo', 'code' ) ->using(TenantMenu::class) ->withPivot('static_content') ->withTimestamps(); } }