Allow partial event updates
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user