Allow partial event updates
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled

This commit is contained in:
Codex Agent
2026-01-16 15:12:03 +01:00
parent 6d3f4f36e8
commit b316beb522
3 changed files with 36 additions and 4 deletions

View File

@@ -389,13 +389,21 @@ class EventController extends Controller
TenantMemberPermissions::ensureEventPermission($request, $event, 'events:manage');
$validated = $request->validated();
$nameProvided = array_key_exists('name', $validated);
$validated = array_merge([
'name' => $event->name,
'event_type_id' => $event->event_type_id,
'event_date' => $event->date?->toDateString(),
'status' => $event->status,
], $validated);
if (isset($validated['event_date'])) {
$validated['date'] = $validated['event_date'];
unset($validated['event_date']);
}
if ($validated['name'] !== $event->name) {
if ($nameProvided && $validated['name'] !== $event->name) {
$validated['slug'] = $this->generateUniqueSlug($validated['name'], $tenantId, $event->id);
}

View File

@@ -23,13 +23,14 @@ class EventStoreRequest extends FormRequest
public function rules(): array
{
$tenantId = request()->attributes->get('tenant_id');
$creating = $this->isMethod('post');
return [
'name' => ['required', 'string', 'max:255'],
'name' => [$creating ? 'required' : 'sometimes', 'string', 'max:255'],
'description' => ['nullable', 'string'],
'event_date' => ['required', 'date', 'after_or_equal:today'],
'event_date' => $creating ? ['required', 'date', 'after_or_equal:today'] : ['sometimes', 'date'],
'location' => ['nullable', 'string', 'max:255'],
'event_type_id' => ['required', 'exists:event_types,id'],
'event_type_id' => [$creating ? 'required' : 'sometimes', 'exists:event_types,id'],
'package_id' => ['nullable', 'integer', 'exists:packages,id'],
'service_package_slug' => [
'nullable',