© 2026 Hedgehog Software, LLC
products - id - name
licenses - id - name
product_price - id - license_id - product_id - price - promo_price
products
product_price
product_price(product_id)
license_id
licenses
price
promo_price
Group::make(function(Livewire $livewire, ?Model $record) { if ($livewire instanceof Pages\EditProduct) { $productPrices = $record->productPrices; return collect($productPrices)->map(function($price) { $license = $price->license; return Section::make($price->id) ->heading(str($license->name)->headline()) ->id("data.productPrices.record-{$price->id}") ->schema([ Placeholder::make(json_encode($license)), TextInput::make("record-{$price->id}.price")->numeric()->required(), TextInput::make("record-{$price->id}.promo_price")->numeric()->required(), ]); })->toArray(); } elseif ($livewire instanceof Pages\CreateProduct) { return collect(License::all())->map(function($license) { return Section::make(str($license->name)->headline()) ->schema([ Placeholder::make(json_encode($license)), TextInput::make('productPrices.price')->numeric()->required(), TextInput::make('productPrices.promo_price')->numeric()->required(), ]); })->toArray(); } else { throw new \InvalidArgumentException('Unsupported $livewire instance.'); } })->statePath('productPrices');