Feature: Updating Listreners, Separating Logic from listeners, Queuing Policies
This commit is contained in:
+10
-2
@@ -49,7 +49,8 @@ boboko-test/
|
||||
app/
|
||||
Models/
|
||||
Customer.php ← app-level model, extends Modules\Core\Customer\Models\Customer
|
||||
User.php ← app-level model, dispatches Modules\Core\Auth\Events\UserCreated
|
||||
User.php ← app-level model, no $dispatchesEvents needed — core dispatches
|
||||
UserCreated itself (Modules\Core\Auth\Services\UserOtpService)
|
||||
Staff.php ← app-level model, extends Modules\Core\Auth\Models\Staff
|
||||
Lunar/
|
||||
Extensions/ ← app's own Filament resource extensions (source of truth, wired in PanelServiceProvider)
|
||||
@@ -264,7 +265,14 @@ php artisan vendor:publish --tag=core-config
|
||||
'auto_create_customer_for_user' => false,
|
||||
```
|
||||
|
||||
Both listeners guard against the other direction re-triggering: they call `User::withoutEvents(...)` around `firstOrCreate`/save, so pairing a `Customer` never spuriously fires `UserCreated` (and vice versa) even if both directions are somehow active at once.
|
||||
A guard against the other direction re-triggering is only needed where a real risk exists:
|
||||
`App\Listeners\CreateUserForCustomerListener` (`boboko-test`, app-level) wraps its
|
||||
`firstOrCreate` in `User::withoutEvents(...)`, since finding-or-creating a `User` there could
|
||||
itself fire `UserCreated` and loop back into `CreateCustomerForUser`. `Modules\Core\Customer\
|
||||
Listeners\CreateCustomerForUser` (core) needs no such guard — it calls a plain
|
||||
`$model::create([])` on `Customer`, which has no `$dispatchesEvents`/model hooks of its own in
|
||||
core that could re-trigger anything; the guard belongs only on the side that actually creates a
|
||||
`User`.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user