feat(authorization): implement WebsiteExtra management with controller, request, resource, service, routes, middleware, and tests

This commit is contained in:
2026-07-31 09:19:25 -03:00
parent 5ec65ce3d3
commit 40a7dece11
9 changed files with 361 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ use App\Domains\Tenant\Models\Tenant;
use App\Domains\Tenant\Models\WebsiteType;
use App\Domains\Tenant\Models\WebsiteTypeExtra;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
use Illuminate\Validation\ValidationException;
@@ -118,6 +119,21 @@ class WebsiteExtraService
$tenant->unsetRelation('websiteExtras');
}
/**
* Replace all configured extras for a tenant.
*
* @param array<string, mixed> $extras
*/
public function replaceForTenant(Tenant $tenant, array $extras): void
{
DB::transaction(function () use ($tenant, $extras): void {
$tenant->websiteExtras()->delete();
$this->createForTenant($tenant, $extras);
});
$tenant->unsetRelation('websiteExtras');
}
/**
* @return Collection<int, WebsiteTypeExtra>
*/