. */ declare(strict_types=1); namespace FireflyIII\Services\Internal\Support; use FireflyIII\Models\Location; use Illuminate\Database\Eloquent\Model; /** * Class LocationServiceTrait */ trait LocationServiceTrait { /** * @param Model $model * @param array $data * * @return Location|null */ protected function storeNewLocation(Model $model, array $data): ?Location { $data['store_location'] = $data['store_location'] ?? false; if ($data['store_location']) { $location = new Location(); $location->latitude = $data['latitude'] ?? config('firefly.default_location.latitude'); $location->longitude = $data['longitude'] ?? config('firefly.default_location.longitude'); $location->zoom_level = $data['zoom_level'] ?? config('firefly.default_location.zoom_level'); $location->locatable()->associate($model); $location->save(); return $location; } return null; } }