Feat: Moving things, updating OTP, cleaning stuff up
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user