Enhance Tenant management by syncing property values in store and update requests; integrate PropRules for validation

This commit is contained in:
2026-06-22 12:58:03 -03:00
parent cde27c0d34
commit 7075704dad
3 changed files with 16 additions and 2 deletions

View File

@@ -19,7 +19,12 @@ class TenantController extends Controller
public function store(StoreTenantRequest $request): JsonResponse public function store(StoreTenantRequest $request): JsonResponse
{ {
$tenant = Tenant::create($request->validated()); $validated = $request->validated();
$props = $validated['props'] ?? [];
unset($validated['props']);
$tenant = Tenant::create($validated);
$tenant->syncPropValues($props);
return TenantResource::make($tenant)->response()->setStatusCode(201); return TenantResource::make($tenant)->response()->setStatusCode(201);
} }
@@ -31,7 +36,12 @@ class TenantController extends Controller
public function update(UpdateTenantRequest $request, Tenant $tenant): TenantResource public function update(UpdateTenantRequest $request, Tenant $tenant): TenantResource
{ {
$tenant->update($request->validated()); $validated = $request->validated();
$props = $validated['props'] ?? [];
unset($validated['props']);
$tenant->update($validated);
$tenant->syncPropValues($props);
return TenantResource::make($tenant); return TenantResource::make($tenant);
} }

View File

@@ -2,6 +2,7 @@
namespace App\Domains\Tenant\Requests; namespace App\Domains\Tenant\Requests;
use App\Domains\Prop\Support\PropRules;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
@@ -21,6 +22,7 @@ class StoreTenantRequest extends FormRequest
'codigo' => ['required', 'string', 'max:255', Rule::unique('tenants', 'codigo')], 'codigo' => ['required', 'string', 'max:255', Rule::unique('tenants', 'codigo')],
'nombre' => ['required', 'string', 'max:255'], 'nombre' => ['required', 'string', 'max:255'],
'dominio' => ['nullable', 'string', 'max:255'], 'dominio' => ['nullable', 'string', 'max:255'],
...PropRules::sync(),
]; ];
} }
} }

View File

@@ -2,6 +2,7 @@
namespace App\Domains\Tenant\Requests; namespace App\Domains\Tenant\Requests;
use App\Domains\Prop\Support\PropRules;
use App\Domains\Tenant\Models\Tenant; use App\Domains\Tenant\Models\Tenant;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
@@ -30,6 +31,7 @@ class UpdateTenantRequest extends FormRequest
], ],
'nombre' => ['required', 'string', 'max:255'], 'nombre' => ['required', 'string', 'max:255'],
'dominio' => ['nullable', 'string', 'max:255'], 'dominio' => ['nullable', 'string', 'max:255'],
...PropRules::sync(),
]; ];
} }
} }