Feat: Moving things, updating OTP, cleaning stuff up

This commit is contained in:
2026-07-03 02:15:31 +03:00
parent 15bff15cad
commit ce08287641
23 changed files with 770 additions and 119 deletions
@@ -3,17 +3,21 @@
namespace Modules\Core\Customer\Extensions;
use Lunar\Admin\Filament\Resources\CustomerResource\RelationManagers\AddressRelationManager as BaseAddressRelationManager;
use Lunar\Admin\Filament\Resources\CustomerResource\RelationManagers\UserRelationManager as BaseUserRelationManager;
use Lunar\Admin\Support\Extending\BaseExtension;
use Modules\Core\Customer\RelationManagers\AddressRelationManager;
use Modules\Core\Customer\RelationManagers\UserRelationManager;
class CustomerResourceExtension extends BaseExtension
{
public function getRelations(array $relations): array
{
return array_map(
fn ($relation) => $relation == BaseAddressRelationManager::class
? AddressRelationManager::class
: $relation,
fn ($relation) => match ($relation) {
BaseAddressRelationManager::class => AddressRelationManager::class,
BaseUserRelationManager::class => UserRelationManager::class,
default => $relation,
},
$relations
);
}
@@ -0,0 +1,23 @@
<?php
namespace Modules\Core\Customer\Listeners;
use Lunar\Facades\ModelManifest;
use Lunar\Models\Contracts\Customer as CustomerContract;
use Modules\Core\Auth\Events\UserCreated;
class CreateCustomerForUser
{
public function handle(UserCreated $event): void
{
if (! config('core.auto_create_customer_for_user')) {
return;
}
$model = ModelManifest::get(CustomerContract::class);
$customer = $model::create([]);
$customer->users()->attach($event->user);
}
}
+1 -12
View File
@@ -2,19 +2,8 @@
namespace Modules\Core\Customer\Models;
use Illuminate\Auth\Authenticatable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Foundation\Auth\Access\Authorizable;
class Customer extends \Lunar\Models\Customer implements AuthenticatableContract
class Customer extends \Lunar\Models\Customer
{
use Authenticatable;
use Authorizable;
protected $casts = [
'otp_expires_at' => 'datetime',
];
public function getTitleAttribute(): ?string
{
return null;
@@ -0,0 +1,34 @@
<?php
namespace Modules\Core\Customer\RelationManagers;
use Filament\Forms\Components\TextInput;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Model;
use Lunar\Admin\Events\CustomerUserEdited;
use Lunar\Admin\Filament\Resources\CustomerResource\RelationManagers\UserRelationManager as BaseUserRelationManager;
class UserRelationManager extends BaseUserRelationManager
{
public function getDefaultTable(Table $table): Table
{
return $table->columns([
Tables\Columns\TextColumn::make('name')
->label(__('lunarpanel::user.table.name.label')),
Tables\Columns\TextColumn::make('email')
->label(__('lunarpanel::user.table.email.label')),
])->actions([
Tables\Actions\EditAction::make('edit')
->after(
fn (Model $record) => CustomerUserEdited::dispatch($record)
)
->form([
TextInput::make('email')
->label(__('lunarpanel::user.form.email.label'))
->required()
->email(),
]),
]);
}
}