'integer', 'base_price' => 'float', 'is_print_on_demand' => 'boolean', 'is_featured' => 'boolean', 'is_active' => 'boolean', 'print_time_hours' => 'float', 'gallery_images' => 'array', 'available_materials' => 'array', 'available_colors' => 'array', ]; public function category(): BelongsTo { return $this->belongsTo(Category::class); } public function orderItems(): HasMany { return $this->hasMany(OrderItem::class); } public function getFormattedPriceAttribute(): string { return '€ '.number_format((float) ($this->base_price ?? 0), 2, ',', '.'); } }