. */ declare(strict_types=1); namespace FireflyIII\Factory; use Carbon\Carbon; use FireflyIII\Models\TransactionJournalMeta; /** * Class TransactionJournalMetaFactory */ class TransactionJournalMetaFactory { /** * @param array $data * * @return TransactionJournalMeta */ public function updateOrCreate(array $data): TransactionJournalMeta { $value = $data['data']; if ($data['data'] instanceof Carbon) { $value = $data['data']->toW3cString(); } $entry = $data['journal']->transactionJournalMeta()->where('name', $data['name'])->first(); if (null === $entry) { $entry = new TransactionJournalMeta(); $entry->transactionJournal()->associate($data['journal']); $entry->name = $data['name']; } $entry->data = $value; $entry->save(); return $entry; } }