2026-07-01 18:35:39 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Modules\Core;
|
|
|
|
|
|
|
|
|
|
use Filament\Contracts\Plugin;
|
|
|
|
|
use Filament\Panel;
|
2026-07-10 15:19:48 +03:00
|
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
2026-07-01 18:35:39 +03:00
|
|
|
use Illuminate\Support\Facades\Mail;
|
2026-07-10 15:19:48 +03:00
|
|
|
use Lunar\Admin\Filament\Resources\ProductResource;
|
2026-07-01 18:35:39 +03:00
|
|
|
use Lunar\Admin\Filament\Resources\StaffResource;
|
|
|
|
|
use Lunar\Admin\Models\Staff as LunarStaff;
|
|
|
|
|
use Lunar\Admin\Support\Facades\LunarPanel;
|
2026-07-10 15:19:48 +03:00
|
|
|
use Lunar\Models\Product;
|
2026-07-06 03:10:34 +03:00
|
|
|
use Lunar\Shipping\ShippingPlugin;
|
2026-07-01 18:35:39 +03:00
|
|
|
use Modules\Core\Auth\Extensions\StaffResourceExtension;
|
|
|
|
|
use Modules\Core\Auth\Filament\Pages\Login;
|
|
|
|
|
use Modules\Core\Auth\Mail\InviteMail;
|
2026-07-10 15:19:48 +03:00
|
|
|
use Modules\Core\Review\Extensions\ProductResourceExtension;
|
|
|
|
|
use Modules\Core\Review\Models\ProductReview;
|
2026-07-01 18:35:39 +03:00
|
|
|
|
|
|
|
|
class CorePlugin implements Plugin
|
|
|
|
|
{
|
|
|
|
|
public function getId(): string
|
|
|
|
|
{
|
|
|
|
|
return 'core';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function register(Panel $panel): void
|
|
|
|
|
{
|
|
|
|
|
$panel->path('boboko')
|
|
|
|
|
->brandName('Boboko')
|
2026-07-02 23:48:55 +03:00
|
|
|
->brandLogo(asset('static/logos/core/boboko-logo.svg'))
|
|
|
|
|
->darkModeBrandLogo(asset('static/logos/core/boboko-logo-white.svg'))
|
2026-07-06 03:10:34 +03:00
|
|
|
->login(Login::class)
|
|
|
|
|
->plugin(ShippingPlugin::make());
|
2026-07-01 18:35:39 +03:00
|
|
|
|
|
|
|
|
LunarPanel::extensions([
|
|
|
|
|
StaffResource::class => StaffResourceExtension::class,
|
2026-07-10 15:19:48 +03:00
|
|
|
ProductResource::class => ProductResourceExtension::class,
|
2026-07-01 18:35:39 +03:00
|
|
|
]);
|
|
|
|
|
|
2026-07-10 15:19:48 +03:00
|
|
|
Product::macro('reviews', function (): HasMany {
|
|
|
|
|
/** @var Product $this */
|
|
|
|
|
return $this->hasMany(ProductReview::class);
|
|
|
|
|
});
|
|
|
|
|
|
2026-07-01 18:35:39 +03:00
|
|
|
LunarStaff::addActivitylogExcept([
|
|
|
|
|
'otp_code',
|
|
|
|
|
'otp_expires_at',
|
|
|
|
|
'password',
|
|
|
|
|
'remember_token',
|
|
|
|
|
'email_verified_at',
|
|
|
|
|
'two_factor_secret',
|
|
|
|
|
'two_factor_recovery_codes',
|
|
|
|
|
'two_factor_confirmed_at',
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
LunarStaff::created(function (LunarStaff $staff) {
|
|
|
|
|
Mail::to($staff->email)->send(new InviteMail($staff->first_name));
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function boot(Panel $panel): void {}
|
|
|
|
|
}
|