use Shopper\Addon\BaseAddon;
use Shopper\ShopperPanel;
final class LoyaltyAddon extends BaseAddon
{
public function getId(): string
{
return 'loyalty';
}
public function register(ShopperPanel $panel): void
{
$panel->addonRoutes(function () {
Route::middleware(['shopper'])->prefix('loyalty')->name('shopper.loyalty.')->group(function () {
Route::get('/', \App\Livewire\Loyalty\Index::class)->name('index');
Route::get('/tiers', \App\Livewire\Loyalty\Tiers::class)->name('tiers');
});
});
$panel->addonLivewireComponents([
'loyalty-index' => \App\Livewire\Loyalty\Index::class,
'loyalty-tiers' => \App\Livewire\Loyalty\Tiers::class,
'loyalty-customer-points' => \App\Livewire\Loyalty\CustomerPoints::class,
]);
$panel->addonViews('loyalty', __DIR__.'/../resources/views');
$panel->addonSidebar(\App\Sidebar\LoyaltySidebar::class);
$panel->addonPermissions([
'browse_loyalty',
'edit_loyalty',
]);
$panel->addonSettingItems([
\App\Livewire\Settings\LoyaltySettings::class => true,
]);
}
public function boot(ShopperPanel $panel): void
{
\Shopper\View\CustomerRenderHook::class;
$panel->renderHook(
\Shopper\View\CustomerRenderHook::SHOW_TABS_END,
fn (): string => '<livewire:loyalty-customer-points />',
);
}
}