diff --git a/assets/TenancyServiceProvider.stub.php b/assets/TenancyServiceProvider.stub.php index 1d15f418..4ef7bdc1 100644 --- a/assets/TenancyServiceProvider.stub.php +++ b/assets/TenancyServiceProvider.stub.php @@ -40,7 +40,13 @@ class TenancyServiceProvider extends ServiceProvider Events\TenantSaved::class => [], Events\UpdatingTenant::class => [], Events\TenantUpdated::class => [], - Events\DeletingTenant::class => [], + Events\DeletingTenant::class => [ + JobPipeline::make([ + Jobs\DeleteDomain::class, + ])->send(function (Events\TenantDeleted $event) { + return $event->tenant; + })->shouldBeQueued(false), // `false` by default, but you probably want to make this `true` for production. + ], Events\TenantDeleted::class => [ JobPipeline::make([ Jobs\DeleteDatabase::class, diff --git a/src/Jobs/DeleteDomain.php b/src/Jobs/DeleteDomain.php new file mode 100644 index 00000000..cafd759a --- /dev/null +++ b/src/Jobs/DeleteDomain.php @@ -0,0 +1,41 @@ +tenant = $tenant; + } + + public function handle() + { + $this->tenant->domains->each(function (Domain $domain){ + event(new DeletingDomain($domain)); + + $domain->delete(); + + event(new DomainDeleted($domain)); + }); + } +}