diff options
| -rw-r--r-- | workbench/app/Livewire/OrdersTable.php | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/workbench/app/Livewire/OrdersTable.php b/workbench/app/Livewire/OrdersTable.php index e42be1d..87fb93e 100644 --- a/workbench/app/Livewire/OrdersTable.php +++ b/workbench/app/Livewire/OrdersTable.php @@ -2,23 +2,37 @@ namespace Workbench\App\Livewire; +use Illuminate\Database\Eloquent\Builder; +use Illuminate\Support\HtmlString; use Lightscale\LaralightTables\Columns\Column; -use Workbench\App\Models\Product; +use Workbench\App\Models\Order; /** - * @extends Table<Product> + * @extends Table<Order> */ class OrdersTable extends Table { - protected $model = Product::class; + protected $model = Order::class; + + /** + * @return Builder<Order> + */ + protected function query(): Builder + { + return Order::withCount('products'); + } public function columns(): array { return [ Column::make('id', 'ID'), - Column::make('name', 'Name'), - Column::make('price', 'Price'), - Column::make('stock', 'Stock'), + Column::make('status', 'Status') + ->slot(fn (Order $r) => ucfirst($r->status->value)), + Column::make('products_count', 'Product Count'), + Column::make('total', 'Total Price') + ->slot(fn (Order $r) => new HtmlString( + '<span style="color:red">£' . number_format((float) $r->total, 2).'</span>' + )), ]; } } |
