ListGalleries::route('/'), 'create' => CreateGallery::route('/create'), 'edit' => EditGallery::route('/{record}/edit'), ]; } public static function mutateFormDataBeforeCreate(array $data): array { $data = self::mutatePassword($data); $data = self::mutateSparkbooth($data, true); $data['slug'] = $data['slug'] ?: Str::uuid()->toString(); return $data; } public static function mutateFormDataBeforeSave(array $data): array { $data = self::mutatePassword($data); $data = self::mutateSparkbooth($data); $data['slug'] = $data['slug'] ?: Str::uuid()->toString(); return $data; } private static function mutatePassword(array $data): array { $password = $data['password'] ?? null; unset($data['password']); if (! empty($password)) { $data['password_hash'] = Hash::make($password); } return $data; } private static function mutateSparkbooth(array $data, bool $isCreate = false): array { if (array_key_exists('sparkbooth_username', $data)) { $data['sparkbooth_username'] = $data['sparkbooth_username'] ? Str::of($data['sparkbooth_username'])->lower()->trim()->value() : null; } $password = $data['sparkbooth_password'] ?? null; unset($data['sparkbooth_password']); if (! empty($password)) { $data['sparkbooth_password'] = $password; } elseif ($isCreate && empty($password)) { $data['sparkbooth_password'] = Str::random(24); } return $data; } }